@optave/codegraph 3.8.0 → 3.8.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 (296) hide show
  1. package/README.md +9 -8
  2. package/dist/ast-analysis/engine.d.ts.map +1 -1
  3. package/dist/ast-analysis/engine.js +95 -87
  4. package/dist/ast-analysis/engine.js.map +1 -1
  5. package/dist/ast-analysis/metrics.d.ts +0 -3
  6. package/dist/ast-analysis/metrics.d.ts.map +1 -1
  7. package/dist/ast-analysis/metrics.js +30 -13
  8. package/dist/ast-analysis/metrics.js.map +1 -1
  9. package/dist/ast-analysis/shared.d.ts.map +1 -1
  10. package/dist/ast-analysis/shared.js +24 -19
  11. package/dist/ast-analysis/shared.js.map +1 -1
  12. package/dist/ast-analysis/visitor-utils.d.ts.map +1 -1
  13. package/dist/ast-analysis/visitor-utils.js +55 -39
  14. package/dist/ast-analysis/visitor-utils.js.map +1 -1
  15. package/dist/ast-analysis/visitor.d.ts.map +1 -1
  16. package/dist/ast-analysis/visitor.js +91 -70
  17. package/dist/ast-analysis/visitor.js.map +1 -1
  18. package/dist/ast-analysis/visitors/ast-store-visitor.d.ts.map +1 -1
  19. package/dist/ast-analysis/visitors/ast-store-visitor.js +54 -58
  20. package/dist/ast-analysis/visitors/ast-store-visitor.js.map +1 -1
  21. package/dist/ast-analysis/visitors/complexity-visitor.d.ts.map +1 -1
  22. package/dist/ast-analysis/visitors/complexity-visitor.js +32 -39
  23. package/dist/ast-analysis/visitors/complexity-visitor.js.map +1 -1
  24. package/dist/ast-analysis/visitors/dataflow-visitor.d.ts.map +1 -1
  25. package/dist/ast-analysis/visitors/dataflow-visitor.js +57 -38
  26. package/dist/ast-analysis/visitors/dataflow-visitor.js.map +1 -1
  27. package/dist/cli/commands/watch.d.ts.map +1 -1
  28. package/dist/cli/commands/watch.js +16 -2
  29. package/dist/cli/commands/watch.js.map +1 -1
  30. package/dist/db/connection.d.ts.map +1 -1
  31. package/dist/db/connection.js +29 -26
  32. package/dist/db/connection.js.map +1 -1
  33. package/dist/db/query-builder.d.ts.map +1 -1
  34. package/dist/db/query-builder.js +16 -5
  35. package/dist/db/query-builder.js.map +1 -1
  36. package/dist/db/repository/base.d.ts +10 -0
  37. package/dist/db/repository/base.d.ts.map +1 -1
  38. package/dist/db/repository/base.js +17 -0
  39. package/dist/db/repository/base.js.map +1 -1
  40. package/dist/db/repository/native-repository.d.ts +6 -1
  41. package/dist/db/repository/native-repository.d.ts.map +1 -1
  42. package/dist/db/repository/native-repository.js +77 -1
  43. package/dist/db/repository/native-repository.js.map +1 -1
  44. package/dist/db/repository/nodes.d.ts.map +1 -1
  45. package/dist/db/repository/nodes.js +8 -4
  46. package/dist/db/repository/nodes.js.map +1 -1
  47. package/dist/db/repository/sqlite-repository.d.ts +3 -0
  48. package/dist/db/repository/sqlite-repository.d.ts.map +1 -1
  49. package/dist/db/repository/sqlite-repository.js +26 -0
  50. package/dist/db/repository/sqlite-repository.js.map +1 -1
  51. package/dist/domain/analysis/brief.d.ts.map +1 -1
  52. package/dist/domain/analysis/brief.js +13 -17
  53. package/dist/domain/analysis/brief.js.map +1 -1
  54. package/dist/domain/analysis/context.d.ts.map +1 -1
  55. package/dist/domain/analysis/context.js +14 -11
  56. package/dist/domain/analysis/context.js.map +1 -1
  57. package/dist/domain/analysis/dependencies.d.ts.map +1 -1
  58. package/dist/domain/analysis/dependencies.js +53 -52
  59. package/dist/domain/analysis/dependencies.js.map +1 -1
  60. package/dist/domain/analysis/fn-impact.d.ts +2 -7
  61. package/dist/domain/analysis/fn-impact.d.ts.map +1 -1
  62. package/dist/domain/analysis/fn-impact.js +33 -31
  63. package/dist/domain/analysis/fn-impact.js.map +1 -1
  64. package/dist/domain/analysis/implementations.d.ts.map +1 -1
  65. package/dist/domain/analysis/implementations.js +11 -19
  66. package/dist/domain/analysis/implementations.js.map +1 -1
  67. package/dist/domain/analysis/module-map.d.ts.map +1 -1
  68. package/dist/domain/analysis/module-map.js +55 -76
  69. package/dist/domain/analysis/module-map.js.map +1 -1
  70. package/dist/domain/analysis/query-helpers.d.ts +7 -0
  71. package/dist/domain/analysis/query-helpers.d.ts.map +1 -1
  72. package/dist/domain/analysis/query-helpers.js +15 -1
  73. package/dist/domain/analysis/query-helpers.js.map +1 -1
  74. package/dist/domain/graph/builder/pipeline.d.ts.map +1 -1
  75. package/dist/domain/graph/builder/pipeline.js +255 -105
  76. package/dist/domain/graph/builder/pipeline.js.map +1 -1
  77. package/dist/domain/graph/builder/stages/build-edges.d.ts.map +1 -1
  78. package/dist/domain/graph/builder/stages/build-edges.js +22 -17
  79. package/dist/domain/graph/builder/stages/build-edges.js.map +1 -1
  80. package/dist/domain/graph/builder/stages/detect-changes.js +2 -2
  81. package/dist/domain/graph/builder/stages/detect-changes.js.map +1 -1
  82. package/dist/domain/graph/builder/stages/finalize.js +2 -2
  83. package/dist/domain/graph/builder/stages/finalize.js.map +1 -1
  84. package/dist/domain/graph/builder/stages/insert-nodes.d.ts.map +1 -1
  85. package/dist/domain/graph/builder/stages/insert-nodes.js +32 -21
  86. package/dist/domain/graph/builder/stages/insert-nodes.js.map +1 -1
  87. package/dist/domain/graph/builder/stages/resolve-imports.d.ts.map +1 -1
  88. package/dist/domain/graph/builder/stages/resolve-imports.js +95 -84
  89. package/dist/domain/graph/builder/stages/resolve-imports.js.map +1 -1
  90. package/dist/domain/graph/cycles.d.ts +6 -0
  91. package/dist/domain/graph/cycles.d.ts.map +1 -1
  92. package/dist/domain/graph/cycles.js +114 -22
  93. package/dist/domain/graph/cycles.js.map +1 -1
  94. package/dist/domain/graph/resolve.js +1 -1
  95. package/dist/domain/graph/resolve.js.map +1 -1
  96. package/dist/domain/graph/watcher.d.ts +2 -0
  97. package/dist/domain/graph/watcher.d.ts.map +1 -1
  98. package/dist/domain/graph/watcher.js +170 -75
  99. package/dist/domain/graph/watcher.js.map +1 -1
  100. package/dist/domain/parser.d.ts +0 -5
  101. package/dist/domain/parser.d.ts.map +1 -1
  102. package/dist/domain/parser.js +13 -28
  103. package/dist/domain/parser.js.map +1 -1
  104. package/dist/domain/search/generator.js +1 -1
  105. package/dist/domain/search/generator.js.map +1 -1
  106. package/dist/domain/search/models.d.ts +4 -3
  107. package/dist/domain/search/models.d.ts.map +1 -1
  108. package/dist/domain/search/models.js +18 -5
  109. package/dist/domain/search/models.js.map +1 -1
  110. package/dist/domain/search/search/hybrid.d.ts.map +1 -1
  111. package/dist/domain/search/search/hybrid.js +29 -18
  112. package/dist/domain/search/search/hybrid.js.map +1 -1
  113. package/dist/extractors/go.js +36 -33
  114. package/dist/extractors/go.js.map +1 -1
  115. package/dist/extractors/helpers.d.ts.map +1 -1
  116. package/dist/extractors/helpers.js +40 -29
  117. package/dist/extractors/helpers.js.map +1 -1
  118. package/dist/extractors/java.js +58 -46
  119. package/dist/extractors/java.js.map +1 -1
  120. package/dist/extractors/javascript.js +46 -45
  121. package/dist/extractors/javascript.js.map +1 -1
  122. package/dist/extractors/kotlin.js +84 -78
  123. package/dist/extractors/kotlin.js.map +1 -1
  124. package/dist/extractors/python.js +29 -24
  125. package/dist/extractors/python.js.map +1 -1
  126. package/dist/extractors/rust.js +41 -32
  127. package/dist/extractors/rust.js.map +1 -1
  128. package/dist/extractors/solidity.js +58 -67
  129. package/dist/extractors/solidity.js.map +1 -1
  130. package/dist/extractors/swift.js +83 -81
  131. package/dist/extractors/swift.js.map +1 -1
  132. package/dist/extractors/zig.js +58 -60
  133. package/dist/extractors/zig.js.map +1 -1
  134. package/dist/features/ast.d.ts +16 -14
  135. package/dist/features/ast.d.ts.map +1 -1
  136. package/dist/features/ast.js +83 -81
  137. package/dist/features/ast.js.map +1 -1
  138. package/dist/features/audit.d.ts.map +1 -1
  139. package/dist/features/audit.js +8 -6
  140. package/dist/features/audit.js.map +1 -1
  141. package/dist/features/branch-compare.d.ts.map +1 -1
  142. package/dist/features/branch-compare.js +69 -72
  143. package/dist/features/branch-compare.js.map +1 -1
  144. package/dist/features/communities.d.ts.map +1 -1
  145. package/dist/features/communities.js +19 -7
  146. package/dist/features/communities.js.map +1 -1
  147. package/dist/features/complexity.d.ts.map +1 -1
  148. package/dist/features/complexity.js +120 -125
  149. package/dist/features/complexity.js.map +1 -1
  150. package/dist/features/dataflow.d.ts.map +1 -1
  151. package/dist/features/dataflow.js +136 -137
  152. package/dist/features/dataflow.js.map +1 -1
  153. package/dist/features/flow.d.ts.map +1 -1
  154. package/dist/features/flow.js +84 -79
  155. package/dist/features/flow.js.map +1 -1
  156. package/dist/features/structure-query.d.ts.map +1 -1
  157. package/dist/features/structure-query.js +69 -65
  158. package/dist/features/structure-query.js.map +1 -1
  159. package/dist/graph/algorithms/leiden/optimiser.d.ts.map +1 -1
  160. package/dist/graph/algorithms/leiden/optimiser.js +70 -55
  161. package/dist/graph/algorithms/leiden/optimiser.js.map +1 -1
  162. package/dist/graph/algorithms/leiden/partition.d.ts.map +1 -1
  163. package/dist/graph/algorithms/leiden/partition.js +288 -266
  164. package/dist/graph/algorithms/leiden/partition.js.map +1 -1
  165. package/dist/graph/model.d.ts.map +1 -1
  166. package/dist/graph/model.js +5 -1
  167. package/dist/graph/model.js.map +1 -1
  168. package/dist/infrastructure/config.d.ts.map +1 -1
  169. package/dist/infrastructure/config.js +6 -4
  170. package/dist/infrastructure/config.js.map +1 -1
  171. package/dist/infrastructure/suppress.d.ts +25 -0
  172. package/dist/infrastructure/suppress.d.ts.map +1 -0
  173. package/dist/infrastructure/suppress.js +43 -0
  174. package/dist/infrastructure/suppress.js.map +1 -0
  175. package/dist/mcp/server.d.ts.map +1 -1
  176. package/dist/mcp/server.js +29 -24
  177. package/dist/mcp/server.js.map +1 -1
  178. package/dist/presentation/dataflow.d.ts.map +1 -1
  179. package/dist/presentation/dataflow.js +47 -38
  180. package/dist/presentation/dataflow.js.map +1 -1
  181. package/dist/presentation/diff-impact-mermaid.d.ts.map +1 -1
  182. package/dist/presentation/diff-impact-mermaid.js +60 -51
  183. package/dist/presentation/diff-impact-mermaid.js.map +1 -1
  184. package/dist/presentation/queries-cli/exports.d.ts.map +1 -1
  185. package/dist/presentation/queries-cli/exports.js +20 -14
  186. package/dist/presentation/queries-cli/exports.js.map +1 -1
  187. package/dist/presentation/queries-cli/impact.d.ts.map +1 -1
  188. package/dist/presentation/queries-cli/impact.js +15 -13
  189. package/dist/presentation/queries-cli/impact.js.map +1 -1
  190. package/dist/presentation/queries-cli/inspect.d.ts.map +1 -1
  191. package/dist/presentation/queries-cli/inspect.js +101 -79
  192. package/dist/presentation/queries-cli/inspect.js.map +1 -1
  193. package/dist/presentation/queries-cli/overview.d.ts.map +1 -1
  194. package/dist/presentation/queries-cli/overview.js +25 -16
  195. package/dist/presentation/queries-cli/overview.js.map +1 -1
  196. package/dist/presentation/queries-cli/path.js +26 -20
  197. package/dist/presentation/queries-cli/path.js.map +1 -1
  198. package/dist/presentation/result-formatter.d.ts +10 -0
  199. package/dist/presentation/result-formatter.d.ts.map +1 -1
  200. package/dist/presentation/result-formatter.js +16 -1
  201. package/dist/presentation/result-formatter.js.map +1 -1
  202. package/dist/presentation/viewer.d.ts.map +1 -1
  203. package/dist/presentation/viewer.js +18 -12
  204. package/dist/presentation/viewer.js.map +1 -1
  205. package/dist/shared/errors.d.ts +5 -0
  206. package/dist/shared/errors.d.ts.map +1 -1
  207. package/dist/shared/errors.js +5 -0
  208. package/dist/shared/errors.js.map +1 -1
  209. package/dist/shared/hierarchy.d.ts +8 -2
  210. package/dist/shared/hierarchy.d.ts.map +1 -1
  211. package/dist/shared/hierarchy.js +42 -1
  212. package/dist/shared/hierarchy.js.map +1 -1
  213. package/dist/shared/normalize.d.ts +6 -1
  214. package/dist/shared/normalize.d.ts.map +1 -1
  215. package/dist/shared/normalize.js +20 -12
  216. package/dist/shared/normalize.js.map +1 -1
  217. package/dist/shared/paginate.d.ts +0 -9
  218. package/dist/shared/paginate.d.ts.map +1 -1
  219. package/dist/shared/paginate.js +0 -15
  220. package/dist/shared/paginate.js.map +1 -1
  221. package/dist/types.d.ts +10 -4
  222. package/dist/types.d.ts.map +1 -1
  223. package/package.json +7 -7
  224. package/src/ast-analysis/engine.ts +126 -105
  225. package/src/ast-analysis/metrics.ts +33 -11
  226. package/src/ast-analysis/shared.ts +33 -24
  227. package/src/ast-analysis/visitor-utils.ts +52 -32
  228. package/src/ast-analysis/visitor.ts +132 -71
  229. package/src/ast-analysis/visitors/ast-store-visitor.ts +53 -50
  230. package/src/ast-analysis/visitors/complexity-visitor.ts +35 -40
  231. package/src/ast-analysis/visitors/dataflow-visitor.ts +87 -43
  232. package/src/cli/commands/watch.ts +16 -2
  233. package/src/db/connection.ts +29 -28
  234. package/src/db/query-builder.ts +15 -3
  235. package/src/db/repository/base.ts +20 -0
  236. package/src/db/repository/native-repository.ts +79 -1
  237. package/src/db/repository/nodes.ts +13 -8
  238. package/src/db/repository/sqlite-repository.ts +29 -0
  239. package/src/domain/analysis/brief.ts +15 -25
  240. package/src/domain/analysis/context.ts +17 -10
  241. package/src/domain/analysis/dependencies.ts +67 -76
  242. package/src/domain/analysis/fn-impact.ts +36 -43
  243. package/src/domain/analysis/implementations.ts +11 -17
  244. package/src/domain/analysis/module-map.ts +58 -92
  245. package/src/domain/analysis/query-helpers.ts +18 -1
  246. package/src/domain/graph/builder/pipeline.ts +286 -97
  247. package/src/domain/graph/builder/stages/build-edges.ts +22 -18
  248. package/src/domain/graph/builder/stages/detect-changes.ts +2 -2
  249. package/src/domain/graph/builder/stages/finalize.ts +2 -2
  250. package/src/domain/graph/builder/stages/insert-nodes.ts +59 -34
  251. package/src/domain/graph/builder/stages/resolve-imports.ts +122 -100
  252. package/src/domain/graph/cycles.ts +110 -23
  253. package/src/domain/graph/resolve.ts +1 -1
  254. package/src/domain/graph/watcher.ts +202 -96
  255. package/src/domain/parser.ts +14 -26
  256. package/src/domain/search/generator.ts +1 -1
  257. package/src/domain/search/models.ts +17 -4
  258. package/src/domain/search/search/hybrid.ts +69 -51
  259. package/src/extractors/go.ts +43 -33
  260. package/src/extractors/helpers.ts +37 -23
  261. package/src/extractors/java.ts +66 -47
  262. package/src/extractors/javascript.ts +45 -46
  263. package/src/extractors/kotlin.ts +84 -77
  264. package/src/extractors/python.ts +31 -25
  265. package/src/extractors/rust.ts +37 -29
  266. package/src/extractors/solidity.ts +57 -61
  267. package/src/extractors/swift.ts +81 -80
  268. package/src/extractors/zig.ts +58 -61
  269. package/src/features/ast.ts +130 -110
  270. package/src/features/audit.ts +8 -6
  271. package/src/features/branch-compare.ts +105 -79
  272. package/src/features/communities.ts +25 -10
  273. package/src/features/complexity.ts +171 -134
  274. package/src/features/dataflow.ts +165 -175
  275. package/src/features/flow.ts +129 -92
  276. package/src/features/structure-query.ts +79 -64
  277. package/src/graph/algorithms/leiden/optimiser.ts +99 -55
  278. package/src/graph/algorithms/leiden/partition.ts +359 -294
  279. package/src/graph/model.ts +6 -1
  280. package/src/infrastructure/config.ts +6 -4
  281. package/src/infrastructure/suppress.ts +47 -0
  282. package/src/mcp/server.ts +53 -37
  283. package/src/presentation/dataflow.ts +50 -44
  284. package/src/presentation/diff-impact-mermaid.ts +104 -62
  285. package/src/presentation/queries-cli/exports.ts +21 -13
  286. package/src/presentation/queries-cli/impact.ts +15 -13
  287. package/src/presentation/queries-cli/inspect.ts +100 -81
  288. package/src/presentation/queries-cli/overview.ts +26 -16
  289. package/src/presentation/queries-cli/path.ts +33 -25
  290. package/src/presentation/result-formatter.ts +19 -1
  291. package/src/presentation/viewer.ts +42 -14
  292. package/src/shared/errors.ts +6 -0
  293. package/src/shared/hierarchy.ts +50 -2
  294. package/src/shared/normalize.ts +31 -12
  295. package/src/shared/paginate.ts +0 -17
  296. package/src/types.ts +24 -4
@@ -1,5 +1,7 @@
1
1
  import fs from 'node:fs';
2
2
  import path from 'node:path';
3
+ import { debug } from '../infrastructure/logger.js';
4
+ import { toErrorMessage } from '../shared/errors.js';
3
5
  import { COMMUNITY_COLORS, DEFAULT_NODE_COLORS, DEFAULT_ROLE_COLORS } from './colors.js';
4
6
  // Re-export color constants so existing consumers are unaffected
5
7
  export { COMMUNITY_COLORS, DEFAULT_NODE_COLORS, DEFAULT_ROLE_COLORS };
@@ -54,8 +56,8 @@ export function loadPlotConfig(dir) {
54
56
  },
55
57
  };
56
58
  }
57
- catch {
58
- // Invalid JSON use defaults
59
+ catch (e) {
60
+ debug(`loadViewerConfig: invalid JSON in config file: ${toErrorMessage(e)}`);
59
61
  }
60
62
  }
61
63
  }
@@ -104,17 +106,21 @@ export function buildLayoutOptions(cfg) {
104
106
  }
105
107
  return opts;
106
108
  }
109
+ function resolvePlotConfig(cfg) {
110
+ return {
111
+ layoutOpts: buildLayoutOptions(cfg),
112
+ title: cfg.title || 'Codegraph',
113
+ layoutAlgorithm: cfg.layout?.algorithm || 'hierarchical',
114
+ layoutDirection: cfg.layout?.direction || 'LR',
115
+ physicsEnabled: cfg.physics?.enabled !== false,
116
+ sizeBy: cfg.sizeBy || 'uniform',
117
+ clusterBy: cfg.clusterBy || 'none',
118
+ effectiveColorBy: cfg.overlays?.complexity && cfg.colorBy === 'kind' ? 'complexity' : cfg.colorBy || 'kind',
119
+ effectiveRisk: cfg.overlays?.risk || false,
120
+ };
121
+ }
107
122
  export function renderPlotHTML(data, cfg) {
108
- const layoutOpts = buildLayoutOptions(cfg);
109
- const title = cfg.title || 'Codegraph';
110
- // Resolve effective colorBy (overlays.complexity overrides)
111
- const layoutAlgorithm = cfg.layout?.algorithm || 'hierarchical';
112
- const layoutDirection = cfg.layout?.direction || 'LR';
113
- const physicsEnabled = cfg.physics?.enabled !== false;
114
- const sizeBy = cfg.sizeBy || 'uniform';
115
- const clusterBy = cfg.clusterBy || 'none';
116
- const effectiveColorBy = cfg.overlays?.complexity && cfg.colorBy === 'kind' ? 'complexity' : cfg.colorBy || 'kind';
117
- const effectiveRisk = cfg.overlays?.risk || false;
123
+ const { layoutOpts, title, layoutAlgorithm, layoutDirection, physicsEnabled, sizeBy, clusterBy, effectiveColorBy, effectiveRisk, } = resolvePlotConfig(cfg);
118
124
  return `<!DOCTYPE html>
119
125
  <html lang="en">
120
126
  <head>
@@ -1 +1 @@
1
- {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/presentation/viewer.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"viewer.js","sourceRoot":"","sources":["../../src/presentation/viewer.ts"],"names":[],"mappings":"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"}
@@ -38,4 +38,9 @@ export declare class BoundaryError extends CodegraphError {
38
38
  }
39
39
  /** Safely extract a string message from an unknown thrown value. */
40
40
  export declare function toErrorMessage(e: unknown): string;
41
+ /**
42
+ * Catch-suppression helpers (`suppressError`, `suppressErrorAsync`) live in
43
+ * `infrastructure/suppress.ts` to avoid a shared→infrastructure layer inversion.
44
+ * Import them from there instead of from this module.
45
+ */
41
46
  //# sourceMappingURL=errors.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,EAAE,IAAwB,EAAE,IAAI,EAAE,KAAK,EAAE,GAAE,kBAAuB;CAMhG;AAED,qBAAa,UAAW,SAAQ,cAAc;gBAChC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,OAAQ,SAAQ,cAAc;gBAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,WAAY,SAAQ,cAAc;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,WAAY,SAAQ,cAAc;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,aAAc,SAAQ,cAAc;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,aAAc,SAAQ,cAAc;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAEjD"}
1
+ {"version":3,"file":"errors.d.ts","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAEH,MAAM,WAAW,kBAAkB;IACjC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,qBAAa,cAAe,SAAQ,KAAK;IACvC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,GAAG,SAAS,CAAC;gBAEb,OAAO,EAAE,MAAM,EAAE,EAAE,IAAwB,EAAE,IAAI,EAAE,KAAK,EAAE,GAAE,kBAAuB;CAMhG;AAED,qBAAa,UAAW,SAAQ,cAAc;gBAChC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,OAAQ,SAAQ,cAAc;gBAC7B,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,WAAY,SAAQ,cAAc;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,eAAgB,SAAQ,cAAc;gBACrC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,WAAY,SAAQ,cAAc;gBACjC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,aAAc,SAAQ,cAAc;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,qBAAa,aAAc,SAAQ,cAAc;gBACnC,OAAO,EAAE,MAAM,EAAE,IAAI,GAAE,kBAAuB;CAI3D;AAED,oEAAoE;AACpE,wBAAgB,cAAc,CAAC,CAAC,EAAE,OAAO,GAAG,MAAM,CAEjD;AAED;;;;GAIG"}
@@ -61,4 +61,9 @@ export class BoundaryError extends CodegraphError {
61
61
  export function toErrorMessage(e) {
62
62
  return e instanceof Error ? e.message : String(e);
63
63
  }
64
+ /**
65
+ * Catch-suppression helpers (`suppressError`, `suppressErrorAsync`) live in
66
+ * `infrastructure/suppress.ts` to avoid a shared→infrastructure layer inversion.
67
+ * Import them from there instead of from this module.
68
+ */
64
69
  //# sourceMappingURL=errors.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,IAAI,CAAS;IACb,IAAI,CAAqB;IAEzB,YAAY,OAAe,EAAE,EAAE,IAAI,GAAG,iBAAiB,EAAE,IAAI,EAAE,KAAK,KAAyB,EAAE;QAC7F,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,OAAQ,SAAQ,cAAc;IACzC,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,cAAc;IAC7C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,cAAc;IACjD,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,cAAc;IAC7C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,cAAc;IAC/C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,cAAc;IAC/C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,OAAO,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC"}
1
+ {"version":3,"file":"errors.js","sourceRoot":"","sources":["../../src/shared/errors.ts"],"names":[],"mappings":"AAAA;;;;;;GAMG;AAQH,MAAM,OAAO,cAAe,SAAQ,KAAK;IACvC,IAAI,CAAS;IACb,IAAI,CAAqB;IAEzB,YAAY,OAAe,EAAE,EAAE,IAAI,GAAG,iBAAiB,EAAE,IAAI,EAAE,KAAK,KAAyB,EAAE;QAC7F,KAAK,CAAC,OAAO,EAAE,EAAE,KAAK,EAAE,CAAC,CAAC;QAC1B,IAAI,CAAC,IAAI,GAAG,gBAAgB,CAAC;QAC7B,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;QACjB,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC;IACnB,CAAC;CACF;AAED,MAAM,OAAO,UAAW,SAAQ,cAAc;IAC5C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,cAAc,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,IAAI,GAAG,YAAY,CAAC;IAC3B,CAAC;CACF;AAED,MAAM,OAAO,OAAQ,SAAQ,cAAc;IACzC,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,UAAU,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QAC9C,IAAI,CAAC,IAAI,GAAG,SAAS,CAAC;IACxB,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,cAAc;IAC7C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,gBAAgB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACpD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,eAAgB,SAAQ,cAAc;IACjD,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,mBAAmB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACvD,IAAI,CAAC,IAAI,GAAG,iBAAiB,CAAC;IAChC,CAAC;CACF;AAED,MAAM,OAAO,WAAY,SAAQ,cAAc;IAC7C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,aAAa,CAAC;IAC5B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,cAAc;IAC/C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,iBAAiB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACrD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,MAAM,OAAO,aAAc,SAAQ,cAAc;IAC/C,YAAY,OAAe,EAAE,OAA2B,EAAE;QACxD,KAAK,CAAC,OAAO,EAAE,EAAE,IAAI,EAAE,oBAAoB,EAAE,GAAG,IAAI,EAAE,CAAC,CAAC;QACxD,IAAI,CAAC,IAAI,GAAG,eAAe,CAAC;IAC9B,CAAC;CACF;AAED,oEAAoE;AACpE,MAAM,UAAU,cAAc,CAAC,CAAU;IACvC,OAAO,CAAC,YAAY,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC;AACpD,CAAC;AAED;;;;GAIG"}
@@ -1,3 +1,9 @@
1
- import type { BetterSqlite3Database, NodeRow } from '../types.js';
2
- export declare function resolveMethodViaHierarchy(db: BetterSqlite3Database, methodName: string): NodeRow[];
1
+ import type { BetterSqlite3Database, NodeRow, Repository } from '../types.js';
2
+ /**
3
+ * Resolve all methods in the class hierarchy that share the given method name.
4
+ *
5
+ * Accepts either a raw BetterSqlite3Database handle (legacy) or a Repository
6
+ * instance (preferred — works with both SqliteRepository and NativeRepository).
7
+ */
8
+ export declare function resolveMethodViaHierarchy(dbOrRepo: BetterSqlite3Database | Repository, methodName: string): NodeRow[];
3
9
  //# sourceMappingURL=hierarchy.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../../src/shared/hierarchy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,MAAM,aAAa,CAAC;AAElE,wBAAgB,yBAAyB,CACvC,EAAE,EAAE,qBAAqB,EACzB,UAAU,EAAE,MAAM,GACjB,OAAO,EAAE,CA0BX"}
1
+ {"version":3,"file":"hierarchy.d.ts","sourceRoot":"","sources":["../../src/shared/hierarchy.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,qBAAqB,EAAE,OAAO,EAAE,UAAU,EAAE,MAAM,aAAa,CAAC;AAE9E;;;;;GAKG;AACH,wBAAgB,yBAAyB,CACvC,QAAQ,EAAE,qBAAqB,GAAG,UAAU,EAC5C,UAAU,EAAE,MAAM,GACjB,OAAO,EAAE,CASX"}
@@ -1,5 +1,46 @@
1
1
  import { getClassHierarchy } from '../db/index.js';
2
- export function resolveMethodViaHierarchy(db, methodName) {
2
+ /**
3
+ * Resolve all methods in the class hierarchy that share the given method name.
4
+ *
5
+ * Accepts either a raw BetterSqlite3Database handle (legacy) or a Repository
6
+ * instance (preferred — works with both SqliteRepository and NativeRepository).
7
+ */
8
+ export function resolveMethodViaHierarchy(dbOrRepo, methodName) {
9
+ // Detect Repository vs raw DB by duck-typing on findNodesWithFanIn
10
+ if (typeof dbOrRepo.findNodesWithFanIn === 'function' &&
11
+ typeof dbOrRepo.getClassHierarchy === 'function') {
12
+ return resolveViaRepo(dbOrRepo, methodName);
13
+ }
14
+ return resolveViaRawDb(dbOrRepo, methodName);
15
+ }
16
+ /** Strip fan_in from NodeRowWithFanIn to produce a plain NodeRow. */
17
+ function stripFanIn(rows) {
18
+ return rows.map(({ fan_in: _, ...rest }) => rest);
19
+ }
20
+ function resolveViaRepo(repo, methodName) {
21
+ const methods = stripFanIn(repo.findNodesWithFanIn(`%.${methodName}`, { kinds: ['method'] }));
22
+ const results = [...methods];
23
+ for (const m of methods) {
24
+ const className = m.name.split('.')[0];
25
+ const classNodes = repo.findNodesWithFanIn(className, {
26
+ kinds: ['class'],
27
+ file: m.file,
28
+ });
29
+ const classNode = classNodes[0];
30
+ if (!classNode)
31
+ continue;
32
+ const ancestors = repo.getClassHierarchy(classNode.id);
33
+ for (const ancestorId of ancestors) {
34
+ const ancestor = repo.findNodeById(ancestorId);
35
+ if (!ancestor)
36
+ continue;
37
+ const parentMethods = stripFanIn(repo.findNodesWithFanIn(`${ancestor.name}.${methodName}`, { kinds: ['method'] }));
38
+ results.push(...parentMethods);
39
+ }
40
+ }
41
+ return results;
42
+ }
43
+ function resolveViaRawDb(db, methodName) {
3
44
  const methods = db
4
45
  .prepare(`SELECT * FROM nodes WHERE kind = 'method' AND name LIKE ?`)
5
46
  .all(`%.${methodName}`);
@@ -1 +1 @@
1
- {"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../../src/shared/hierarchy.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,iBAAiB,EAAE,MAAM,gBAAgB,CAAC;AAGnD,MAAM,UAAU,yBAAyB,CACvC,EAAyB,EACzB,UAAkB;IAElB,MAAM,OAAO,GAAG,EAAE;SACf,OAAO,CAAC,2DAA2D,CAAC;SACpE,GAAG,CAAC,KAAK,UAAU,EAAE,CAAc,CAAC;IAEvC,MAAM,OAAO,GAAc,CAAC,GAAG,OAAO,CAAC,CAAC;IACxC,KAAK,MAAM,CAAC,IAAI,OAAO,EAAE,CAAC;QACxB,MAAM,SAAS,GAAG,CAAC,CAAC,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;QACvC,MAAM,SAAS,GAAG,EAAE;aACjB,OAAO,CAAC,oEAAoE,CAAC;aAC7E,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,IAAI,CAAwB,CAAC;QACjD,IAAI,CAAC,SAAS;YAAE,SAAS;QAEzB,MAAM,SAAS,GAAG,iBAAiB,CAAC,EAAE,EAAE,SAAS,CAAC,EAAE,CAAC,CAAC;QACtD,KAAK,MAAM,UAAU,IAAI,SAAS,EAAE,CAAC;YACnC,MAAM,QAAQ,GAAG,EAAE,CAAC,OAAO,CAAC,qCAAqC,CAAC,CAAC,GAAG,CAAC,UAAU,CAEpE,CAAC;YACd,IAAI,CAAC,QAAQ;gBAAE,SAAS;YACxB,MAAM,aAAa,GAAG,EAAE;iBACrB,OAAO,CAAC,wDAAwD,CAAC;iBACjE,GAAG,CAAC,GAAG,QAAQ,CAAC,IAAI,IAAI,UAAU,EAAE,CAAc,CAAC;YACtD,OAAO,CAAC,IAAI,CAAC,GAAG,aAAa,CAAC,CAAC;QACjC,CAAC;IACH,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
1
+ {"version":3,"file":"hierarchy.js","sourceRoot":"","sources":["../../src/shared/hierarchy.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,10 @@ interface DbHandle {
4
4
  get(...params: unknown[]): unknown;
5
5
  };
6
6
  }
7
+ /** Anything that can look up a file hash — either a raw DB or a Repository. */
8
+ interface HashSource {
9
+ getFileHash(file: string): string | null;
10
+ }
7
11
  export declare function getFileHash(db: DbHandle, file: string): string | null;
8
12
  export declare function kindIcon(kind: string): string;
9
13
  export interface NormalizedSymbol {
@@ -26,7 +30,8 @@ interface RawSymbolRow {
26
30
  }
27
31
  /**
28
32
  * Normalize a raw DB/query row into the stable 7-field symbol shape.
33
+ * Accepts a raw DB handle (with .prepare), a Repository (with .getFileHash), or null.
29
34
  */
30
- export declare function normalizeSymbol(row: RawSymbolRow, db?: DbHandle | null, hashCache?: Map<string, string | null>): NormalizedSymbol;
35
+ export declare function normalizeSymbol(row: RawSymbolRow, db?: DbHandle | HashSource | null, hashCache?: Map<string, string | null>): NormalizedSymbol;
31
36
  export {};
32
37
  //# sourceMappingURL=normalize.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,UAAU,QAAQ;IAChB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;KAAE,CAAC;CAC9D;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuB7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,YAAY,EACjB,EAAE,CAAC,EAAE,QAAQ,GAAG,IAAI,EACpB,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GACrC,gBAAgB,CAqBlB"}
1
+ {"version":3,"file":"normalize.d.ts","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"AAAA,0EAA0E;AAC1E,UAAU,QAAQ;IAChB,OAAO,CAAC,GAAG,EAAE,MAAM,GAAG;QAAE,GAAG,CAAC,GAAG,MAAM,EAAE,OAAO,EAAE,GAAG,OAAO,CAAA;KAAE,CAAC;CAC9D;AAED,+EAA+E;AAC/E,UAAU,UAAU;IAClB,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAAC;CAC1C;AAMD,wBAAgB,WAAW,CAAC,EAAE,EAAE,QAAQ,EAAE,IAAI,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAKrE;AAED,wBAAgB,QAAQ,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAuB7C;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,GAAG,IAAI,CAAC;IACvB,IAAI,EAAE,MAAM,GAAG,IAAI,CAAC;IACpB,QAAQ,EAAE,MAAM,GAAG,IAAI,CAAC;CACzB;AAED,UAAU,YAAY;IACpB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACzB,OAAO,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IACxB,IAAI,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;CACtB;AAqBD;;;GAGG;AACH,wBAAgB,eAAe,CAC7B,GAAG,EAAE,YAAY,EACjB,EAAE,CAAC,EAAE,QAAQ,GAAG,UAAU,GAAG,IAAI,EACjC,SAAS,CAAC,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,GAAG,IAAI,CAAC,GACrC,gBAAgB,CAWlB"}
@@ -1,3 +1,6 @@
1
+ function isHashSource(x) {
2
+ return typeof x === 'object' && x !== null && typeof x.getFileHash === 'function';
3
+ }
1
4
  export function getFileHash(db, file) {
2
5
  const row = db.prepare('SELECT hash FROM file_hashes WHERE file = ?').get(file);
3
6
  return row ? row.hash : null;
@@ -26,22 +29,27 @@ export function kindIcon(kind) {
26
29
  return '-';
27
30
  }
28
31
  }
32
+ /**
33
+ * Resolve a file hash, using the cache when available.
34
+ * Accepts a raw DB handle (with .prepare) or a Repository (with .getFileHash).
35
+ */
36
+ function resolveFileHash(db, file, hashCache) {
37
+ const lookupHash = isHashSource(db)
38
+ ? (f) => db.getFileHash(f)
39
+ : (f) => getFileHash(db, f);
40
+ if (!hashCache)
41
+ return lookupHash(file);
42
+ if (!hashCache.has(file)) {
43
+ hashCache.set(file, lookupHash(file));
44
+ }
45
+ return hashCache.get(file) ?? null;
46
+ }
29
47
  /**
30
48
  * Normalize a raw DB/query row into the stable 7-field symbol shape.
49
+ * Accepts a raw DB handle (with .prepare), a Repository (with .getFileHash), or null.
31
50
  */
32
51
  export function normalizeSymbol(row, db, hashCache) {
33
- let fileHash = null;
34
- if (db) {
35
- if (hashCache) {
36
- if (!hashCache.has(row.file)) {
37
- hashCache.set(row.file, getFileHash(db, row.file));
38
- }
39
- fileHash = hashCache.get(row.file) ?? null;
40
- }
41
- else {
42
- fileHash = getFileHash(db, row.file);
43
- }
44
- }
52
+ const fileHash = db ? resolveFileHash(db, row.file, hashCache) : null;
45
53
  return {
46
54
  name: row.name,
47
55
  kind: row.kind,
@@ -1 +1 @@
1
- {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"AAKA,MAAM,UAAU,WAAW,CAAC,EAAY,EAAE,IAAY;IACpD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,IAAI,CAEjE,CAAC;IACd,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAsBD;;GAEG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAiB,EACjB,EAAoB,EACpB,SAAsC;IAEtC,IAAI,QAAQ,GAAkB,IAAI,CAAC;IACnC,IAAI,EAAE,EAAE,CAAC;QACP,IAAI,SAAS,EAAE,CAAC;YACd,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBAC7B,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,EAAE,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC;YACrD,CAAC;YACD,QAAQ,GAAG,SAAS,CAAC,GAAG,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;QAC7C,CAAC;aAAM,CAAC;YACN,QAAQ,GAAG,WAAW,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,CAAC,CAAC;QACvC,CAAC;IACH,CAAC;IACD,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5C,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;QACtB,QAAQ;KACT,CAAC;AACJ,CAAC"}
1
+ {"version":3,"file":"normalize.js","sourceRoot":"","sources":["../../src/shared/normalize.ts"],"names":[],"mappings":"AAUA,SAAS,YAAY,CAAC,CAAU;IAC9B,OAAO,OAAO,CAAC,KAAK,QAAQ,IAAI,CAAC,KAAK,IAAI,IAAI,OAAQ,CAAgB,CAAC,WAAW,KAAK,UAAU,CAAC;AACpG,CAAC;AAED,MAAM,UAAU,WAAW,CAAC,EAAY,EAAE,IAAY;IACpD,MAAM,GAAG,GAAG,EAAE,CAAC,OAAO,CAAC,6CAA6C,CAAC,CAAC,GAAG,CAAC,IAAI,CAEjE,CAAC;IACd,OAAO,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;AAC/B,CAAC;AAED,MAAM,UAAU,QAAQ,CAAC,IAAY;IACnC,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,OAAO;YACV,OAAO,GAAG,CAAC;QACb,KAAK,QAAQ;YACX,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,MAAM;YACT,OAAO,GAAG,CAAC;QACb,KAAK,WAAW;YACd,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb,KAAK,UAAU;YACb,OAAO,GAAG,CAAC;QACb;YACE,OAAO,GAAG,CAAC;IACf,CAAC;AACH,CAAC;AAsBD;;;GAGG;AACH,SAAS,eAAe,CACtB,EAAyB,EACzB,IAAY,EACZ,SAAsC;IAEtC,MAAM,UAAU,GAAG,YAAY,CAAC,EAAE,CAAC;QACjC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,EAAE,CAAC,WAAW,CAAC,CAAC,CAAC;QAClC,CAAC,CAAC,CAAC,CAAS,EAAE,EAAE,CAAC,WAAW,CAAC,EAAc,EAAE,CAAC,CAAC,CAAC;IAClD,IAAI,CAAC,SAAS;QAAE,OAAO,UAAU,CAAC,IAAI,CAAC,CAAC;IACxC,IAAI,CAAC,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,SAAS,CAAC,GAAG,CAAC,IAAI,EAAE,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC;IACxC,CAAC;IACD,OAAO,SAAS,CAAC,GAAG,CAAC,IAAI,CAAC,IAAI,IAAI,CAAC;AACrC,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,eAAe,CAC7B,GAAiB,EACjB,EAAiC,EACjC,SAAsC;IAEtC,MAAM,QAAQ,GAAG,EAAE,CAAC,CAAC,CAAC,eAAe,CAAC,EAAE,EAAE,GAAG,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;IACtE,OAAO;QACL,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,IAAI,EAAE,GAAG,CAAC,IAAI;QACd,OAAO,EAAE,GAAG,CAAC,QAAQ,IAAI,GAAG,CAAC,OAAO,IAAI,IAAI;QAC5C,IAAI,EAAE,GAAG,CAAC,IAAI,IAAI,IAAI;QACtB,QAAQ;KACT,CAAC;AACJ,CAAC"}
@@ -42,13 +42,4 @@ export declare function paginate<T>(items: T[], { limit, offset }?: PaginateOpts
42
42
  export declare function paginateResult<T extends Record<string, unknown>>(result: T, field: string, { limit, offset }?: PaginateOpts): T & {
43
43
  _pagination?: PaginationMeta;
44
44
  };
45
- /**
46
- * Print data as newline-delimited JSON (NDJSON).
47
- *
48
- * Emits a `_meta` line with pagination info (if present), then one JSON
49
- * line per item in the named array field.
50
- */
51
- export declare function printNdjson(data: Record<string, unknown> & {
52
- _pagination?: PaginationMeta;
53
- }, field: string): void;
54
45
  //# sourceMappingURL=paginate.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"paginate.d.ts","sourceRoot":"","sources":["../../src/shared/paginate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iFAAiF;AACjF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuB/C,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAG9F;AAED,yCAAyC;AACzC,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAE,YAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,CAkBhG;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,MAAM,EACb,EAAE,KAAK,EAAE,MAAM,EAAE,GAAE,YAAiB,GACnC,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,cAAc,CAAA;CAAE,CAStC;AAED;;;;;GAKG;AACH,wBAAgB,WAAW,CACzB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,cAAc,CAAA;CAAE,EAChE,KAAK,EAAE,MAAM,GACZ,IAAI,CAMN"}
1
+ {"version":3,"file":"paginate.d.ts","sourceRoot":"","sources":["../../src/shared/paginate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe,CAAC,CAAC;IAChC,KAAK,EAAE,CAAC,EAAE,CAAC;IACX,UAAU,CAAC,EAAE,cAAc,CAAC;CAC7B;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED,iFAAiF;AACjF,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAuB/C,CAAC;AAEF;;GAEG;AACH,wBAAgB,cAAc,CAAC,cAAc,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAG9F;AAED,yCAAyC;AACzC,eAAO,MAAM,aAAa,OAAO,CAAC;AAElC;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,GAAE,YAAiB,GAAG,eAAe,CAAC,CAAC,CAAC,CAkBhG;AAED;;;;;GAKG;AACH,wBAAgB,cAAc,CAAC,CAAC,SAAS,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9D,MAAM,EAAE,CAAC,EACT,KAAK,EAAE,MAAM,EACb,EAAE,KAAK,EAAE,MAAM,EAAE,GAAE,YAAiB,GACnC,CAAC,GAAG;IAAE,WAAW,CAAC,EAAE,cAAc,CAAA;CAAE,CAStC"}
@@ -79,19 +79,4 @@ export function paginateResult(result, field, { limit, offset } = {}) {
79
79
  const { items, pagination } = paginate(arr, { limit, offset });
80
80
  return { ...result, [field]: items, _pagination: pagination };
81
81
  }
82
- /**
83
- * Print data as newline-delimited JSON (NDJSON).
84
- *
85
- * Emits a `_meta` line with pagination info (if present), then one JSON
86
- * line per item in the named array field.
87
- */
88
- export function printNdjson(data, field) {
89
- if (data._pagination)
90
- console.log(JSON.stringify({ _meta: data._pagination }));
91
- const items = data[field];
92
- if (Array.isArray(items)) {
93
- for (const item of items)
94
- console.log(JSON.stringify(item));
95
- }
96
- }
97
82
  //# sourceMappingURL=paginate.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"paginate.js","sourceRoot":"","sources":["../../src/shared/paginate.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"paginate.js","sourceRoot":"","sources":["../../src/shared/paginate.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAoBH,iFAAiF;AACjF,MAAM,CAAC,MAAM,YAAY,GAA2B;IAClD,cAAc,EAAE,GAAG;IACnB,KAAK,EAAE,EAAE;IACT,KAAK,EAAE,EAAE;IACT,UAAU,EAAE,GAAG;IACf,YAAY,EAAE,GAAG;IACjB,SAAS,EAAE,CAAC;IACZ,OAAO,EAAE,CAAC;IACV,OAAO,EAAE,EAAE;IACX,SAAS,EAAE,EAAE;IACb,YAAY,EAAE,EAAE;IAChB,WAAW,EAAE,EAAE;IACf,eAAe,EAAE,EAAE;IACnB,eAAe,EAAE,EAAE;IACnB,cAAc,EAAE,EAAE;IAClB,QAAQ,EAAE,EAAE;IACZ,UAAU,EAAE,EAAE;IACd,UAAU,EAAE,EAAE;IACd,SAAS,EAAE,EAAE;IACb,WAAW,EAAE,EAAE;IACf,SAAS,EAAE,EAAE;IACb,MAAM,EAAE,EAAE;IACV,SAAS,EAAE,EAAE;CACd,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,cAAc,CAAC,cAAuC;IACpE,IAAI,CAAC,cAAc;QAAE,OAAO,YAAY,CAAC;IACzC,OAAO,EAAE,GAAG,YAAY,EAAE,GAAG,cAAc,EAAE,CAAC;AAChD,CAAC;AAED,yCAAyC;AACzC,MAAM,CAAC,MAAM,aAAa,GAAG,IAAI,CAAC;AAElC;;;;GAIG;AACH,MAAM,UAAU,QAAQ,CAAI,KAAU,EAAE,EAAE,KAAK,EAAE,MAAM,KAAmB,EAAE;IAC1E,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,EAAE,KAAK,EAAE,CAAC;IACnB,CAAC;IACD,MAAM,KAAK,GAAG,KAAK,CAAC,MAAM,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,MAAM,IAAI,CAAC,EAAE,KAAK,CAAC,CAAC,CAAC;IACtD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IAC/B,MAAM,IAAI,GAAG,KAAK,CAAC,KAAK,CAAC,GAAG,EAAE,GAAG,GAAG,GAAG,CAAC,CAAC;IACzC,OAAO;QACL,KAAK,EAAE,IAAI;QACX,UAAU,EAAE;YACV,KAAK;YACL,MAAM,EAAE,GAAG;YACX,KAAK,EAAE,GAAG;YACV,OAAO,EAAE,GAAG,GAAG,GAAG,GAAG,KAAK;YAC1B,QAAQ,EAAE,IAAI,CAAC,MAAM;SACtB;KACF,CAAC;AACJ,CAAC;AAED;;;;;GAKG;AACH,MAAM,UAAU,cAAc,CAC5B,MAAS,EACT,KAAa,EACb,EAAE,KAAK,EAAE,MAAM,KAAmB,EAAE;IAEpC,IAAI,KAAK,KAAK,SAAS,EAAE,CAAC;QACxB,OAAO,MAAM,CAAC;IAChB,CAAC;IACD,MAAM,GAAG,GAAG,MAAM,CAAC,KAAK,CAAC,CAAC;IAC1B,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,GAAG,CAAC;QAAE,OAAO,MAAM,CAAC;IAEvC,MAAM,EAAE,KAAK,EAAE,UAAU,EAAE,GAAG,QAAQ,CAAC,GAAG,EAAE,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC,CAAC;IAC/D,OAAO,EAAE,GAAG,MAAM,EAAE,CAAC,KAAK,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,UAAU,EAAE,CAAC;AAChE,CAAC"}
package/dist/types.d.ts CHANGED
@@ -221,6 +221,9 @@ export interface Repository {
221
221
  hasEmbeddings(): boolean;
222
222
  hasDataflowTable(): boolean;
223
223
  getComplexityForNode(nodeId: number): ComplexityMetrics | undefined;
224
+ getFileHash(file: string): string | null;
225
+ hasImplementsEdges(): boolean;
226
+ hasCoChangesTable(): boolean;
224
227
  }
225
228
  /**
226
229
  * In-memory repository — mutable, used for testing and incremental builds.
@@ -1555,9 +1558,9 @@ export interface NativeAddon {
1555
1558
  buildCallEdges(files: unknown[], nodes: unknown[], builtinReceivers: string[]): unknown[];
1556
1559
  buildImportEdges?(files: unknown[], resolvedImports: unknown[], fileReexports: unknown[], fileNodeIds: unknown[], barrelFiles: string[], rootDir: string): unknown[];
1557
1560
  engineVersion(): string;
1558
- analyzeComplexity(source: string, filePath: string): NativeFunctionComplexityResult[];
1559
- buildCfgAnalysis(source: string, filePath: string): NativeFunctionCfgResult[];
1560
- extractDataflowAnalysis(source: string, filePath: string): DataflowResult | null;
1561
+ analyzeComplexity(source: string, filePath: string, langId?: string | null): NativeFunctionComplexityResult[];
1562
+ buildCfgAnalysis(source: string, filePath: string, langId?: string | null): NativeFunctionCfgResult[];
1563
+ extractDataflowAnalysis(source: string, filePath: string, langId?: string | null): DataflowResult | null;
1561
1564
  ParseTreeCache: new () => NativeParseTreeCache;
1562
1565
  NativeDatabase: {
1563
1566
  openReadWrite(dbPath: string): NativeDatabase;
@@ -1753,7 +1756,10 @@ export interface NativeDatabase {
1753
1756
  hasCfgTables(): boolean;
1754
1757
  hasEmbeddings(): boolean;
1755
1758
  hasDataflowTable(): boolean;
1759
+ hasImplementsEdges(): boolean;
1760
+ hasCoChangesTable(): boolean;
1756
1761
  getComplexityForNode(nodeId: number): NativeComplexityMetrics | null;
1762
+ getFileHash(file: string): string | null;
1757
1763
  bulkInsertNodes(batches: Array<{
1758
1764
  file: string;
1759
1765
  definitions: Array<{
@@ -1837,7 +1843,7 @@ export interface NativeDatabase {
1837
1843
  sourceId: number;
1838
1844
  targetId: number;
1839
1845
  kind: string;
1840
- paramIndex?: number | null;
1846
+ paramIndex?: number;
1841
1847
  expression?: string | null;
1842
1848
  line?: number | null;
1843
1849
  confidence: number;