@optave/codegraph 3.5.0 → 3.6.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 +35 -14
- package/dist/ast-analysis/engine.d.ts.map +1 -1
- package/dist/ast-analysis/engine.js +119 -127
- package/dist/ast-analysis/engine.js.map +1 -1
- package/dist/ast-analysis/visitors/ast-store-visitor.d.ts.map +1 -1
- package/dist/ast-analysis/visitors/ast-store-visitor.js +14 -1
- package/dist/ast-analysis/visitors/ast-store-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 +11 -13
- package/dist/ast-analysis/visitors/complexity-visitor.js.map +1 -1
- package/dist/db/connection.d.ts +12 -2
- package/dist/db/connection.d.ts.map +1 -1
- package/dist/db/connection.js +81 -53
- 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 +38 -32
- package/dist/db/migrations.js.map +1 -1
- package/dist/domain/analysis/context.d.ts.map +1 -1
- package/dist/domain/analysis/context.js +51 -66
- package/dist/domain/analysis/context.js.map +1 -1
- package/dist/domain/analysis/dependencies.d.ts.map +1 -1
- package/dist/domain/analysis/dependencies.js +62 -70
- package/dist/domain/analysis/dependencies.js.map +1 -1
- package/dist/domain/analysis/diff-impact.d.ts +9 -7
- package/dist/domain/analysis/diff-impact.d.ts.map +1 -1
- package/dist/domain/analysis/exports.d.ts.map +1 -1
- package/dist/domain/analysis/exports.js +29 -33
- package/dist/domain/analysis/exports.js.map +1 -1
- package/dist/domain/analysis/fn-impact.d.ts +15 -17
- package/dist/domain/analysis/fn-impact.d.ts.map +1 -1
- package/dist/domain/analysis/fn-impact.js +35 -65
- package/dist/domain/analysis/fn-impact.js.map +1 -1
- package/dist/domain/analysis/module-map.d.ts.map +1 -1
- package/dist/domain/analysis/module-map.js +91 -6
- package/dist/domain/analysis/module-map.js.map +1 -1
- package/dist/domain/analysis/query-helpers.d.ts +20 -0
- package/dist/domain/analysis/query-helpers.d.ts.map +1 -0
- package/dist/domain/analysis/query-helpers.js +27 -0
- package/dist/domain/analysis/query-helpers.js.map +1 -0
- package/dist/domain/graph/builder/helpers.d.ts.map +1 -1
- package/dist/domain/graph/builder/helpers.js +15 -9
- 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 +3 -2
- 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 +69 -3
- package/dist/domain/graph/builder/pipeline.js.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/build-edges.js +7 -51
- package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
- package/dist/domain/graph/builder/stages/build-structure.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/build-structure.js +7 -5
- package/dist/domain/graph/builder/stages/build-structure.js.map +1 -1
- package/dist/domain/graph/builder/stages/collect-files.js +2 -2
- 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 +2 -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 +124 -105
- package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
- package/dist/domain/graph/builder/stages/insert-nodes.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/insert-nodes.js +28 -15
- package/dist/domain/graph/builder/stages/insert-nodes.js.map +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.d.ts.map +1 -1
- package/dist/domain/graph/builder/stages/resolve-imports.js +3 -2
- package/dist/domain/graph/builder/stages/resolve-imports.js.map +1 -1
- package/dist/domain/graph/resolve.d.ts +0 -4
- package/dist/domain/graph/resolve.d.ts.map +1 -1
- package/dist/domain/graph/resolve.js +32 -48
- package/dist/domain/graph/resolve.js.map +1 -1
- package/dist/domain/graph/watcher.d.ts.map +1 -1
- package/dist/domain/graph/watcher.js +12 -12
- package/dist/domain/graph/watcher.js.map +1 -1
- package/dist/domain/parser.d.ts +1 -1
- package/dist/domain/parser.d.ts.map +1 -1
- package/dist/domain/parser.js +164 -101
- package/dist/domain/parser.js.map +1 -1
- package/dist/domain/search/search/cli-formatter.d.ts.map +1 -1
- package/dist/domain/search/search/cli-formatter.js +88 -83
- package/dist/domain/search/search/cli-formatter.js.map +1 -1
- package/dist/extractors/bash.d.ts +6 -0
- package/dist/extractors/bash.d.ts.map +1 -0
- package/dist/extractors/bash.js +91 -0
- package/dist/extractors/bash.js.map +1 -0
- package/dist/extractors/c.d.ts +6 -0
- package/dist/extractors/c.d.ts.map +1 -0
- package/dist/extractors/c.js +204 -0
- package/dist/extractors/c.js.map +1 -0
- package/dist/extractors/cpp.d.ts +6 -0
- package/dist/extractors/cpp.d.ts.map +1 -0
- package/dist/extractors/cpp.js +283 -0
- package/dist/extractors/cpp.js.map +1 -0
- package/dist/extractors/csharp.d.ts.map +1 -1
- package/dist/extractors/csharp.js +42 -54
- package/dist/extractors/csharp.js.map +1 -1
- package/dist/extractors/go.d.ts.map +1 -1
- package/dist/extractors/go.js +126 -130
- package/dist/extractors/go.js.map +1 -1
- package/dist/extractors/hcl.js +6 -6
- package/dist/extractors/hcl.js.map +1 -1
- package/dist/extractors/helpers.d.ts +32 -1
- package/dist/extractors/helpers.d.ts.map +1 -1
- package/dist/extractors/helpers.js +74 -0
- package/dist/extractors/helpers.js.map +1 -1
- package/dist/extractors/index.d.ts +6 -0
- package/dist/extractors/index.d.ts.map +1 -1
- package/dist/extractors/index.js +6 -0
- package/dist/extractors/index.js.map +1 -1
- package/dist/extractors/java.d.ts.map +1 -1
- package/dist/extractors/java.js +32 -47
- package/dist/extractors/java.js.map +1 -1
- package/dist/extractors/javascript.d.ts.map +1 -1
- package/dist/extractors/javascript.js +306 -292
- package/dist/extractors/javascript.js.map +1 -1
- package/dist/extractors/kotlin.d.ts +6 -0
- package/dist/extractors/kotlin.d.ts.map +1 -0
- package/dist/extractors/kotlin.js +275 -0
- package/dist/extractors/kotlin.js.map +1 -0
- package/dist/extractors/php.d.ts.map +1 -1
- package/dist/extractors/php.js +39 -44
- package/dist/extractors/php.js.map +1 -1
- package/dist/extractors/python.d.ts.map +1 -1
- package/dist/extractors/python.js +75 -93
- package/dist/extractors/python.js.map +1 -1
- package/dist/extractors/ruby.js +6 -13
- package/dist/extractors/ruby.js.map +1 -1
- package/dist/extractors/rust.d.ts.map +1 -1
- package/dist/extractors/rust.js +58 -83
- package/dist/extractors/rust.js.map +1 -1
- package/dist/extractors/scala.d.ts +6 -0
- package/dist/extractors/scala.d.ts.map +1 -0
- package/dist/extractors/scala.js +269 -0
- package/dist/extractors/scala.js.map +1 -0
- package/dist/extractors/swift.d.ts +6 -0
- package/dist/extractors/swift.d.ts.map +1 -0
- package/dist/extractors/swift.js +275 -0
- package/dist/extractors/swift.js.map +1 -0
- package/dist/features/ast.d.ts +2 -0
- package/dist/features/ast.d.ts.map +1 -1
- package/dist/features/ast.js +9 -24
- package/dist/features/ast.js.map +1 -1
- package/dist/features/audit.d.ts.map +1 -1
- package/dist/features/audit.js +17 -21
- package/dist/features/audit.js.map +1 -1
- package/dist/features/branch-compare.d.ts.map +1 -1
- package/dist/features/branch-compare.js +47 -3
- package/dist/features/branch-compare.js.map +1 -1
- package/dist/features/cfg.d.ts +7 -1
- package/dist/features/cfg.d.ts.map +1 -1
- package/dist/features/cfg.js +118 -62
- package/dist/features/cfg.js.map +1 -1
- package/dist/features/check.d.ts.map +1 -1
- package/dist/features/check.js +79 -62
- package/dist/features/check.js.map +1 -1
- package/dist/features/complexity-query.d.ts.map +1 -1
- package/dist/features/complexity-query.js +142 -137
- package/dist/features/complexity-query.js.map +1 -1
- package/dist/features/complexity.d.ts +7 -1
- package/dist/features/complexity.d.ts.map +1 -1
- package/dist/features/complexity.js +62 -1
- package/dist/features/complexity.js.map +1 -1
- package/dist/features/dataflow.d.ts +7 -1
- package/dist/features/dataflow.d.ts.map +1 -1
- package/dist/features/dataflow.js +356 -188
- package/dist/features/dataflow.js.map +1 -1
- package/dist/features/graph-enrichment.d.ts.map +1 -1
- package/dist/features/graph-enrichment.js +117 -104
- package/dist/features/graph-enrichment.js.map +1 -1
- package/dist/features/sequence.d.ts.map +1 -1
- package/dist/features/sequence.js +25 -4
- package/dist/features/sequence.js.map +1 -1
- package/dist/features/structure-query.d.ts.map +1 -1
- package/dist/features/structure-query.js +29 -4
- package/dist/features/structure-query.js.map +1 -1
- package/dist/features/structure.d.ts.map +1 -1
- package/dist/features/structure.js +35 -15
- package/dist/features/structure.js.map +1 -1
- package/dist/graph/algorithms/leiden/adapter.d.ts.map +1 -1
- package/dist/graph/algorithms/leiden/adapter.js +88 -73
- package/dist/graph/algorithms/leiden/adapter.js.map +1 -1
- package/dist/graph/algorithms/leiden/index.js +43 -28
- package/dist/graph/algorithms/leiden/index.js.map +1 -1
- package/dist/graph/algorithms/leiden/optimiser.d.ts.map +1 -1
- package/dist/graph/algorithms/leiden/optimiser.js +90 -104
- package/dist/graph/algorithms/leiden/optimiser.js.map +1 -1
- package/dist/graph/algorithms/leiden/partition.d.ts.map +1 -1
- package/dist/graph/algorithms/leiden/partition.js +89 -106
- package/dist/graph/algorithms/leiden/partition.js.map +1 -1
- package/dist/graph/model.d.ts +2 -0
- package/dist/graph/model.d.ts.map +1 -1
- package/dist/graph/model.js +20 -8
- package/dist/graph/model.js.map +1 -1
- package/dist/infrastructure/config.d.ts +0 -8
- package/dist/infrastructure/config.d.ts.map +1 -1
- package/dist/infrastructure/config.js +73 -62
- package/dist/infrastructure/config.js.map +1 -1
- package/dist/infrastructure/registry.d.ts +0 -8
- package/dist/infrastructure/registry.d.ts.map +1 -1
- package/dist/infrastructure/registry.js +12 -14
- package/dist/infrastructure/registry.js.map +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +45 -36
- package/dist/mcp/server.js.map +1 -1
- package/dist/presentation/audit.d.ts.map +1 -1
- package/dist/presentation/audit.js +61 -57
- package/dist/presentation/audit.js.map +1 -1
- package/dist/presentation/branch-compare.d.ts.map +1 -1
- package/dist/presentation/branch-compare.js +56 -38
- package/dist/presentation/branch-compare.js.map +1 -1
- package/dist/presentation/check.d.ts.map +1 -1
- package/dist/presentation/check.js +30 -32
- package/dist/presentation/check.js.map +1 -1
- package/dist/presentation/colors.d.ts.map +1 -1
- package/dist/presentation/colors.js +2 -0
- package/dist/presentation/colors.js.map +1 -1
- package/dist/presentation/complexity.d.ts.map +1 -1
- package/dist/presentation/complexity.js +25 -19
- package/dist/presentation/complexity.js.map +1 -1
- package/dist/presentation/queries-cli/exports.d.ts.map +1 -1
- package/dist/presentation/queries-cli/exports.js +15 -15
- package/dist/presentation/queries-cli/exports.js.map +1 -1
- package/dist/presentation/queries-cli/impact.d.ts.map +1 -1
- package/dist/presentation/queries-cli/impact.js +29 -19
- package/dist/presentation/queries-cli/impact.js.map +1 -1
- package/dist/types.d.ts +182 -7
- package/dist/types.d.ts.map +1 -1
- package/grammars/tree-sitter-bash.wasm +0 -0
- package/grammars/tree-sitter-c.wasm +0 -0
- package/grammars/tree-sitter-cpp.wasm +0 -0
- package/grammars/tree-sitter-kotlin.wasm +0 -0
- package/grammars/tree-sitter-scala.wasm +0 -0
- package/grammars/tree-sitter-swift.wasm +0 -0
- package/package.json +13 -7
- package/src/ast-analysis/engine.ts +147 -138
- package/src/ast-analysis/visitors/ast-store-visitor.ts +15 -2
- package/src/ast-analysis/visitors/complexity-visitor.ts +11 -11
- package/src/db/connection.ts +90 -59
- package/src/db/index.ts +1 -0
- package/src/db/migrations.ts +36 -32
- package/src/domain/analysis/context.ts +73 -75
- package/src/domain/analysis/dependencies.ts +78 -68
- package/src/domain/analysis/exports.ts +45 -34
- package/src/domain/analysis/fn-impact.ts +67 -64
- package/src/domain/analysis/module-map.ts +103 -8
- package/src/domain/analysis/query-helpers.ts +35 -0
- package/src/domain/graph/builder/helpers.ts +12 -6
- package/src/domain/graph/builder/incremental.ts +3 -2
- package/src/domain/graph/builder/pipeline.ts +71 -3
- package/src/domain/graph/builder/stages/build-edges.ts +10 -75
- package/src/domain/graph/builder/stages/build-structure.ts +9 -7
- package/src/domain/graph/builder/stages/collect-files.ts +2 -2
- package/src/domain/graph/builder/stages/detect-changes.ts +7 -2
- package/src/domain/graph/builder/stages/finalize.ts +159 -125
- package/src/domain/graph/builder/stages/insert-nodes.ts +32 -21
- package/src/domain/graph/builder/stages/resolve-imports.ts +3 -2
- package/src/domain/graph/resolve.ts +34 -46
- package/src/domain/graph/watcher.ts +12 -14
- package/src/domain/parser.ts +168 -97
- package/src/domain/search/search/cli-formatter.ts +121 -94
- package/src/extractors/bash.ts +97 -0
- package/src/extractors/c.ts +212 -0
- package/src/extractors/cpp.ts +298 -0
- package/src/extractors/csharp.ts +53 -56
- package/src/extractors/go.ts +152 -134
- package/src/extractors/hcl.ts +6 -6
- package/src/extractors/helpers.ts +93 -1
- package/src/extractors/index.ts +6 -0
- package/src/extractors/java.ts +43 -48
- package/src/extractors/javascript.ts +328 -281
- package/src/extractors/kotlin.ts +293 -0
- package/src/extractors/php.ts +46 -40
- package/src/extractors/python.ts +81 -104
- package/src/extractors/ruby.ts +6 -13
- package/src/extractors/rust.ts +65 -85
- package/src/extractors/scala.ts +285 -0
- package/src/extractors/swift.ts +293 -0
- package/src/features/ast.ts +10 -25
- package/src/features/audit.ts +24 -20
- package/src/features/branch-compare.ts +51 -4
- package/src/features/cfg.ts +158 -65
- package/src/features/check.ts +90 -74
- package/src/features/complexity-query.ts +181 -163
- package/src/features/complexity.ts +64 -1
- package/src/features/dataflow.ts +462 -217
- package/src/features/graph-enrichment.ts +161 -117
- package/src/features/sequence.ts +27 -4
- package/src/features/structure-query.ts +43 -4
- package/src/features/structure.ts +50 -22
- package/src/graph/algorithms/leiden/adapter.ts +126 -71
- package/src/graph/algorithms/leiden/index.ts +67 -28
- package/src/graph/algorithms/leiden/optimiser.ts +114 -105
- package/src/graph/algorithms/leiden/partition.ts +131 -98
- package/src/graph/model.ts +19 -7
- package/src/infrastructure/config.ts +60 -58
- package/src/infrastructure/registry.ts +17 -14
- package/src/mcp/server.ts +46 -37
- package/src/presentation/audit.ts +72 -67
- package/src/presentation/branch-compare.ts +54 -50
- package/src/presentation/check.ts +34 -34
- package/src/presentation/colors.ts +2 -0
- package/src/presentation/complexity.ts +39 -33
- package/src/presentation/queries-cli/exports.ts +17 -17
- package/src/presentation/queries-cli/impact.ts +30 -22
- package/src/types.ts +189 -7
package/src/types.ts
CHANGED
|
@@ -22,10 +22,11 @@ export type CoreSymbolKind =
|
|
|
22
22
|
| 'enum'
|
|
23
23
|
| 'trait'
|
|
24
24
|
| 'record'
|
|
25
|
-
| 'module'
|
|
25
|
+
| 'module'
|
|
26
|
+
| 'namespace';
|
|
26
27
|
|
|
27
28
|
/** Sub-declaration kinds (Phase 1). Includes 'method' for class child nodes. */
|
|
28
|
-
export type ExtendedSymbolKind = 'parameter' | 'property' | 'constant' | 'method';
|
|
29
|
+
export type ExtendedSymbolKind = 'parameter' | 'property' | 'constant' | 'variable' | 'method';
|
|
29
30
|
|
|
30
31
|
/** All queryable symbol kinds. */
|
|
31
32
|
export type SymbolKind = CoreSymbolKind | ExtendedSymbolKind;
|
|
@@ -83,7 +84,13 @@ export type LanguageId =
|
|
|
83
84
|
| 'csharp'
|
|
84
85
|
| 'ruby'
|
|
85
86
|
| 'php'
|
|
86
|
-
| 'hcl'
|
|
87
|
+
| 'hcl'
|
|
88
|
+
| 'c'
|
|
89
|
+
| 'cpp'
|
|
90
|
+
| 'kotlin'
|
|
91
|
+
| 'swift'
|
|
92
|
+
| 'scala'
|
|
93
|
+
| 'bash';
|
|
87
94
|
|
|
88
95
|
/** Engine mode selector. */
|
|
89
96
|
export type EngineMode = 'native' | 'wasm' | 'auto';
|
|
@@ -433,6 +440,11 @@ export interface Import {
|
|
|
433
440
|
csharpUsing?: boolean;
|
|
434
441
|
rubyRequire?: boolean;
|
|
435
442
|
phpUse?: boolean;
|
|
443
|
+
cInclude?: boolean;
|
|
444
|
+
kotlinImport?: boolean;
|
|
445
|
+
swiftImport?: boolean;
|
|
446
|
+
scalaImport?: boolean;
|
|
447
|
+
bashSource?: boolean;
|
|
436
448
|
}
|
|
437
449
|
|
|
438
450
|
/** A class/struct/trait relationship (extends or implements). */
|
|
@@ -883,6 +895,13 @@ export interface EngineOpts {
|
|
|
883
895
|
ast: boolean;
|
|
884
896
|
/** Persistent NativeDatabase connection for build writes (Phase 6.15). */
|
|
885
897
|
nativeDb?: NativeDatabase;
|
|
898
|
+
/**
|
|
899
|
+
* Suspend the JS (better-sqlite3) connection before a native write to avoid
|
|
900
|
+
* dual-connection WAL corruption. Call `resumeJsDb()` after the write completes.
|
|
901
|
+
* Only set during pipeline builds where both connections coexist.
|
|
902
|
+
*/
|
|
903
|
+
suspendJsDb?: () => void;
|
|
904
|
+
resumeJsDb?: () => void;
|
|
886
905
|
}
|
|
887
906
|
|
|
888
907
|
/** A file change detected during incremental builds. */
|
|
@@ -2014,14 +2033,14 @@ export interface NativeDatabase {
|
|
|
2014
2033
|
name: string;
|
|
2015
2034
|
kind: string;
|
|
2016
2035
|
line: number;
|
|
2017
|
-
endLine?: number
|
|
2018
|
-
visibility?: string
|
|
2036
|
+
endLine?: number;
|
|
2037
|
+
visibility?: string;
|
|
2019
2038
|
children: Array<{
|
|
2020
2039
|
name: string;
|
|
2021
2040
|
kind: string;
|
|
2022
2041
|
line: number;
|
|
2023
|
-
endLine?: number
|
|
2024
|
-
visibility?: string
|
|
2042
|
+
endLine?: number;
|
|
2043
|
+
visibility?: string;
|
|
2025
2044
|
}>;
|
|
2026
2045
|
}>;
|
|
2027
2046
|
exports: Array<{ name: string; kind: string; line: number }>;
|
|
@@ -2050,6 +2069,56 @@ export interface NativeDatabase {
|
|
|
2050
2069
|
}>;
|
|
2051
2070
|
}>,
|
|
2052
2071
|
): number;
|
|
2072
|
+
bulkInsertComplexity?(
|
|
2073
|
+
rows: Array<{
|
|
2074
|
+
nodeId: number;
|
|
2075
|
+
cognitive: number;
|
|
2076
|
+
cyclomatic: number;
|
|
2077
|
+
maxNesting: number;
|
|
2078
|
+
loc: number;
|
|
2079
|
+
sloc: number;
|
|
2080
|
+
commentLines: number;
|
|
2081
|
+
halsteadN1: number;
|
|
2082
|
+
halsteadN2: number;
|
|
2083
|
+
halsteadBigN1: number;
|
|
2084
|
+
halsteadBigN2: number;
|
|
2085
|
+
halsteadVocabulary: number;
|
|
2086
|
+
halsteadLength: number;
|
|
2087
|
+
halsteadVolume: number;
|
|
2088
|
+
halsteadDifficulty: number;
|
|
2089
|
+
halsteadEffort: number;
|
|
2090
|
+
halsteadBugs: number;
|
|
2091
|
+
maintainabilityIndex: number;
|
|
2092
|
+
}>,
|
|
2093
|
+
): number;
|
|
2094
|
+
bulkInsertCfg?(
|
|
2095
|
+
entries: Array<{
|
|
2096
|
+
nodeId: number;
|
|
2097
|
+
blocks: Array<{
|
|
2098
|
+
index: number;
|
|
2099
|
+
blockType: string;
|
|
2100
|
+
startLine?: number | null;
|
|
2101
|
+
endLine?: number | null;
|
|
2102
|
+
label?: string | null;
|
|
2103
|
+
}>;
|
|
2104
|
+
edges: Array<{
|
|
2105
|
+
sourceIndex: number;
|
|
2106
|
+
targetIndex: number;
|
|
2107
|
+
kind: string;
|
|
2108
|
+
}>;
|
|
2109
|
+
}>,
|
|
2110
|
+
): number;
|
|
2111
|
+
bulkInsertDataflow?(
|
|
2112
|
+
edges: Array<{
|
|
2113
|
+
sourceId: number;
|
|
2114
|
+
targetId: number;
|
|
2115
|
+
kind: string;
|
|
2116
|
+
paramIndex?: number | null;
|
|
2117
|
+
expression?: string | null;
|
|
2118
|
+
line?: number | null;
|
|
2119
|
+
confidence: number;
|
|
2120
|
+
}>,
|
|
2121
|
+
): number;
|
|
2053
2122
|
classifyRolesFull(): {
|
|
2054
2123
|
entry: number;
|
|
2055
2124
|
core: number;
|
|
@@ -2078,6 +2147,119 @@ export interface NativeDatabase {
|
|
|
2078
2147
|
} | null;
|
|
2079
2148
|
purgeFilesData(files: string[], purgeHashes?: boolean, reverseDepFiles?: string[]): void;
|
|
2080
2149
|
|
|
2150
|
+
// ── Batched query methods ────────────────────────────────────────────
|
|
2151
|
+
/** All graph statistics in a single napi call (replaces ~11 queries in module-map). */
|
|
2152
|
+
getGraphStats?(noTests: boolean): {
|
|
2153
|
+
totalNodes: number;
|
|
2154
|
+
totalEdges: number;
|
|
2155
|
+
nodesByKind: Array<{ kind: string; count: number }>;
|
|
2156
|
+
edgesByKind: Array<{ kind: string; count: number }>;
|
|
2157
|
+
roleCounts: Array<{ role: string; count: number }>;
|
|
2158
|
+
quality: {
|
|
2159
|
+
callableTotal: number;
|
|
2160
|
+
callableWithCallers: number;
|
|
2161
|
+
callEdges: number;
|
|
2162
|
+
highConfCallEdges: number;
|
|
2163
|
+
};
|
|
2164
|
+
hotspots: Array<{ file: string; fanIn: number; fanOut: number }>;
|
|
2165
|
+
complexity: {
|
|
2166
|
+
analyzed: number;
|
|
2167
|
+
avgCognitive: number;
|
|
2168
|
+
avgCyclomatic: number;
|
|
2169
|
+
maxCognitive: number;
|
|
2170
|
+
maxCyclomatic: number;
|
|
2171
|
+
avgMi: number;
|
|
2172
|
+
minMi: number;
|
|
2173
|
+
} | null;
|
|
2174
|
+
embeddings: {
|
|
2175
|
+
count: number;
|
|
2176
|
+
model: string | null;
|
|
2177
|
+
dim: number | null;
|
|
2178
|
+
builtAt: string | null;
|
|
2179
|
+
} | null;
|
|
2180
|
+
};
|
|
2181
|
+
/** All 6 directional dataflow edge sets for a node in one call. */
|
|
2182
|
+
getDataflowEdges?(nodeId: number): {
|
|
2183
|
+
flowsToOut: Array<{
|
|
2184
|
+
name: string;
|
|
2185
|
+
kind: string;
|
|
2186
|
+
file: string;
|
|
2187
|
+
line: number | null;
|
|
2188
|
+
paramIndex: number | null;
|
|
2189
|
+
expression: string | null;
|
|
2190
|
+
confidence: number | null;
|
|
2191
|
+
}>;
|
|
2192
|
+
flowsToIn: Array<{
|
|
2193
|
+
name: string;
|
|
2194
|
+
kind: string;
|
|
2195
|
+
file: string;
|
|
2196
|
+
line: number | null;
|
|
2197
|
+
paramIndex: number | null;
|
|
2198
|
+
expression: string | null;
|
|
2199
|
+
confidence: number | null;
|
|
2200
|
+
}>;
|
|
2201
|
+
returnsOut: Array<{
|
|
2202
|
+
name: string;
|
|
2203
|
+
kind: string;
|
|
2204
|
+
file: string;
|
|
2205
|
+
line: number | null;
|
|
2206
|
+
paramIndex: number | null;
|
|
2207
|
+
expression: string | null;
|
|
2208
|
+
confidence: number | null;
|
|
2209
|
+
}>;
|
|
2210
|
+
returnsIn: Array<{
|
|
2211
|
+
name: string;
|
|
2212
|
+
kind: string;
|
|
2213
|
+
file: string;
|
|
2214
|
+
line: number | null;
|
|
2215
|
+
paramIndex: number | null;
|
|
2216
|
+
expression: string | null;
|
|
2217
|
+
confidence: number | null;
|
|
2218
|
+
}>;
|
|
2219
|
+
mutatesOut: Array<{
|
|
2220
|
+
name: string;
|
|
2221
|
+
kind: string;
|
|
2222
|
+
file: string;
|
|
2223
|
+
line: number | null;
|
|
2224
|
+
paramIndex: number | null;
|
|
2225
|
+
expression: string | null;
|
|
2226
|
+
confidence: number | null;
|
|
2227
|
+
}>;
|
|
2228
|
+
mutatesIn: Array<{
|
|
2229
|
+
name: string;
|
|
2230
|
+
kind: string;
|
|
2231
|
+
file: string;
|
|
2232
|
+
line: number | null;
|
|
2233
|
+
paramIndex: number | null;
|
|
2234
|
+
expression: string | null;
|
|
2235
|
+
confidence: number | null;
|
|
2236
|
+
}>;
|
|
2237
|
+
};
|
|
2238
|
+
/** Hotspot rows for a metric/kind/limit in one call. */
|
|
2239
|
+
getHotspots?(
|
|
2240
|
+
kind: string,
|
|
2241
|
+
metric: string,
|
|
2242
|
+
noTests: boolean,
|
|
2243
|
+
limit: number,
|
|
2244
|
+
): Array<{
|
|
2245
|
+
name: string;
|
|
2246
|
+
kind: string;
|
|
2247
|
+
lineCount: number | null;
|
|
2248
|
+
symbolCount: number | null;
|
|
2249
|
+
importCount: number | null;
|
|
2250
|
+
exportCount: number | null;
|
|
2251
|
+
fanIn: number | null;
|
|
2252
|
+
fanOut: number | null;
|
|
2253
|
+
cohesion: number | null;
|
|
2254
|
+
fileCount: number | null;
|
|
2255
|
+
}>;
|
|
2256
|
+
/** Batch fan-in/fan-out for multiple node IDs in one call. */
|
|
2257
|
+
batchFanMetrics?(nodeIds: number[]): Array<{
|
|
2258
|
+
nodeId: number;
|
|
2259
|
+
fanIn: number;
|
|
2260
|
+
fanOut: number;
|
|
2261
|
+
}>;
|
|
2262
|
+
|
|
2081
2263
|
// ── Generic query execution & version validation (6.16) ─────────────
|
|
2082
2264
|
/** Execute a parameterized SELECT and return all rows as objects. */
|
|
2083
2265
|
queryAll(sql: string, params: Array<string | number | null>): Record<string, unknown>[];
|