@yalehwang/archguard 0.1.21 → 0.1.31

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 (689) hide show
  1. package/README.md +109 -22
  2. package/dist/analysis/atlas-metrics-analysis.d.ts +11 -0
  3. package/dist/analysis/atlas-metrics-analysis.d.ts.map +1 -0
  4. package/dist/analysis/atlas-metrics-analysis.js +17 -0
  5. package/dist/analysis/atlas-metrics-analysis.js.map +1 -0
  6. package/dist/analysis/fitness/dependency-checker.d.ts +4 -0
  7. package/dist/analysis/fitness/dependency-checker.d.ts.map +1 -0
  8. package/dist/analysis/fitness/dependency-checker.js +16 -0
  9. package/dist/analysis/fitness/dependency-checker.js.map +1 -0
  10. package/dist/analysis/fitness/rule-evaluator.d.ts +6 -0
  11. package/dist/analysis/fitness/rule-evaluator.d.ts.map +1 -0
  12. package/dist/analysis/fitness/rule-evaluator.js +64 -0
  13. package/dist/analysis/fitness/rule-evaluator.js.map +1 -0
  14. package/dist/analysis/fitness/rule-types.d.ts +34 -0
  15. package/dist/analysis/fitness/rule-types.d.ts.map +1 -0
  16. package/dist/analysis/fitness/rule-types.js +2 -0
  17. package/dist/analysis/fitness/rule-types.js.map +1 -0
  18. package/dist/analysis/gim/direction-hint.d.ts +18 -0
  19. package/dist/analysis/gim/direction-hint.d.ts.map +1 -0
  20. package/dist/analysis/gim/direction-hint.js +76 -0
  21. package/dist/analysis/gim/direction-hint.js.map +1 -0
  22. package/dist/analysis/gim/gim-loss-evaluator.d.ts +14 -0
  23. package/dist/analysis/gim/gim-loss-evaluator.d.ts.map +1 -0
  24. package/dist/analysis/gim/gim-loss-evaluator.js +80 -0
  25. package/dist/analysis/gim/gim-loss-evaluator.js.map +1 -0
  26. package/dist/analysis/gini.d.ts +2 -0
  27. package/dist/analysis/gini.d.ts.map +1 -0
  28. package/dist/analysis/gini.js +12 -0
  29. package/dist/analysis/gini.js.map +1 -0
  30. package/dist/analysis/git-history/git-log-reader.d.ts +24 -0
  31. package/dist/analysis/git-history/git-log-reader.d.ts.map +1 -0
  32. package/dist/analysis/git-history/git-log-reader.js +117 -0
  33. package/dist/analysis/git-history/git-log-reader.js.map +1 -0
  34. package/dist/analysis/git-history/history-aggregator.d.ts +19 -0
  35. package/dist/analysis/git-history/history-aggregator.d.ts.map +1 -0
  36. package/dist/analysis/git-history/history-aggregator.js +291 -0
  37. package/dist/analysis/git-history/history-aggregator.js.map +1 -0
  38. package/dist/analysis/git-history/history-query.d.ts +111 -0
  39. package/dist/analysis/git-history/history-query.d.ts.map +1 -0
  40. package/dist/analysis/git-history/history-query.js +201 -0
  41. package/dist/analysis/git-history/history-query.js.map +1 -0
  42. package/dist/analysis/git-history/index.d.ts +4 -0
  43. package/dist/analysis/git-history/index.d.ts.map +1 -0
  44. package/dist/analysis/git-history/index.js +4 -0
  45. package/dist/analysis/git-history/index.js.map +1 -0
  46. package/dist/analysis/metric-vector-builder.d.ts +5 -0
  47. package/dist/analysis/metric-vector-builder.d.ts.map +1 -0
  48. package/dist/analysis/metric-vector-builder.js +47 -0
  49. package/dist/analysis/metric-vector-builder.js.map +1 -0
  50. package/dist/analysis/metrics-history-reader.d.ts +4 -0
  51. package/dist/analysis/metrics-history-reader.d.ts.map +1 -0
  52. package/dist/analysis/metrics-history-reader.js +24 -0
  53. package/dist/analysis/metrics-history-reader.js.map +1 -0
  54. package/dist/analysis/package-metrics-analysis.d.ts +18 -0
  55. package/dist/analysis/package-metrics-analysis.d.ts.map +1 -0
  56. package/dist/analysis/package-metrics-analysis.js +59 -0
  57. package/dist/analysis/package-metrics-analysis.js.map +1 -0
  58. package/dist/analysis/project-semantics-loader.d.ts +3 -0
  59. package/dist/analysis/project-semantics-loader.d.ts.map +1 -0
  60. package/dist/analysis/project-semantics-loader.js +25 -0
  61. package/dist/analysis/project-semantics-loader.js.map +1 -0
  62. package/dist/analysis/snapshot-diff.d.ts +19 -0
  63. package/dist/analysis/snapshot-diff.d.ts.map +1 -0
  64. package/dist/analysis/snapshot-diff.js +54 -0
  65. package/dist/analysis/snapshot-diff.js.map +1 -0
  66. package/dist/analysis/snapshot-store.d.ts +15 -0
  67. package/dist/analysis/snapshot-store.d.ts.map +1 -0
  68. package/dist/analysis/snapshot-store.js +96 -0
  69. package/dist/analysis/snapshot-store.js.map +1 -0
  70. package/dist/analysis/test-analyzer.d.ts +4 -1
  71. package/dist/analysis/test-analyzer.d.ts.map +1 -1
  72. package/dist/analysis/test-analyzer.js +67 -14
  73. package/dist/analysis/test-analyzer.js.map +1 -1
  74. package/dist/analysis/test-coverage-mapper.d.ts +1 -1
  75. package/dist/analysis/test-coverage-mapper.d.ts.map +1 -1
  76. package/dist/analysis/test-coverage-mapper.js +32 -2
  77. package/dist/analysis/test-coverage-mapper.js.map +1 -1
  78. package/dist/analysis/test-issue-detector.d.ts +1 -1
  79. package/dist/analysis/test-issue-detector.d.ts.map +1 -1
  80. package/dist/analysis/test-issue-detector.js +7 -2
  81. package/dist/analysis/test-issue-detector.js.map +1 -1
  82. package/dist/analysis/test-pattern-advisor.d.ts +2 -0
  83. package/dist/analysis/test-pattern-advisor.d.ts.map +1 -0
  84. package/dist/analysis/test-pattern-advisor.js +59 -0
  85. package/dist/analysis/test-pattern-advisor.js.map +1 -0
  86. package/dist/cli/analyze/normalize-to-diagrams.d.ts +9 -0
  87. package/dist/cli/analyze/normalize-to-diagrams.d.ts.map +1 -1
  88. package/dist/cli/analyze/normalize-to-diagrams.js +35 -26
  89. package/dist/cli/analyze/normalize-to-diagrams.js.map +1 -1
  90. package/dist/cli/analyze/run-analysis.d.ts +1 -1
  91. package/dist/cli/analyze/run-analysis.d.ts.map +1 -1
  92. package/dist/cli/analyze/run-analysis.js +186 -32
  93. package/dist/cli/analyze/run-analysis.js.map +1 -1
  94. package/dist/cli/{cache-manager.d.ts → cache/cache-manager.d.ts} +1 -1
  95. package/dist/cli/cache/cache-manager.d.ts.map +1 -0
  96. package/dist/cli/{cache-manager.js → cache/cache-manager.js} +2 -2
  97. package/dist/cli/cache/cache-manager.js.map +1 -0
  98. package/dist/cli/cognitive/ccb-assembler.d.ts +8 -0
  99. package/dist/cli/cognitive/ccb-assembler.d.ts.map +1 -0
  100. package/dist/cli/cognitive/ccb-assembler.js +213 -0
  101. package/dist/cli/cognitive/ccb-assembler.js.map +1 -0
  102. package/dist/cli/cognitive/ccb-reader.d.ts +7 -0
  103. package/dist/cli/cognitive/ccb-reader.d.ts.map +1 -0
  104. package/dist/cli/cognitive/ccb-reader.js +27 -0
  105. package/dist/cli/cognitive/ccb-reader.js.map +1 -0
  106. package/dist/cli/cognitive/ccb-schema.d.ts +36 -0
  107. package/dist/cli/cognitive/ccb-schema.d.ts.map +1 -0
  108. package/dist/cli/cognitive/ccb-schema.js +2 -0
  109. package/dist/cli/cognitive/ccb-schema.js.map +1 -0
  110. package/dist/cli/cognitive/ccb-writer.d.ts +3 -0
  111. package/dist/cli/cognitive/ccb-writer.d.ts.map +1 -0
  112. package/dist/cli/cognitive/ccb-writer.js +12 -0
  113. package/dist/cli/cognitive/ccb-writer.js.map +1 -0
  114. package/dist/cli/commands/analyze.d.ts.map +1 -1
  115. package/dist/cli/commands/analyze.js +23 -4
  116. package/dist/cli/commands/analyze.js.map +1 -1
  117. package/dist/cli/commands/cache.js +2 -2
  118. package/dist/cli/commands/cache.js.map +1 -1
  119. package/dist/cli/commands/check.d.ts +3 -0
  120. package/dist/cli/commands/check.d.ts.map +1 -0
  121. package/dist/cli/commands/check.js +48 -0
  122. package/dist/cli/commands/check.js.map +1 -0
  123. package/dist/cli/commands/diff.d.ts +3 -0
  124. package/dist/cli/commands/diff.d.ts.map +1 -0
  125. package/dist/cli/commands/diff.js +89 -0
  126. package/dist/cli/commands/diff.js.map +1 -0
  127. package/dist/cli/commands/init.d.ts.map +1 -1
  128. package/dist/cli/commands/init.js +1 -2
  129. package/dist/cli/commands/init.js.map +1 -1
  130. package/dist/cli/commands/query.d.ts +51 -0
  131. package/dist/cli/commands/query.d.ts.map +1 -1
  132. package/dist/cli/commands/query.js +373 -17
  133. package/dist/cli/commands/query.js.map +1 -1
  134. package/dist/cli/config-loader.d.ts +50 -0
  135. package/dist/cli/config-loader.d.ts.map +1 -1
  136. package/dist/cli/config-loader.js +33 -0
  137. package/dist/cli/config-loader.js.map +1 -1
  138. package/dist/cli/{errors.d.ts → errors/index.d.ts} +16 -2
  139. package/dist/cli/errors/index.d.ts.map +1 -0
  140. package/dist/cli/{error-handler.js → errors/index.js} +32 -2
  141. package/dist/cli/errors/index.js.map +1 -0
  142. package/dist/cli/git-history/git-log-reader.d.ts +2 -0
  143. package/dist/cli/git-history/git-log-reader.d.ts.map +1 -0
  144. package/dist/cli/git-history/git-log-reader.js +2 -0
  145. package/dist/cli/git-history/git-log-reader.js.map +1 -0
  146. package/dist/cli/git-history/history-aggregator.d.ts +2 -0
  147. package/dist/cli/git-history/history-aggregator.d.ts.map +1 -0
  148. package/dist/cli/git-history/history-aggregator.js +2 -0
  149. package/dist/cli/git-history/history-aggregator.js.map +1 -0
  150. package/dist/cli/git-history/history-loader.d.ts +11 -0
  151. package/dist/cli/git-history/history-loader.d.ts.map +1 -0
  152. package/dist/cli/git-history/history-loader.js +30 -0
  153. package/dist/cli/git-history/history-loader.js.map +1 -0
  154. package/dist/cli/git-history/history-query.d.ts +2 -0
  155. package/dist/cli/git-history/history-query.d.ts.map +1 -0
  156. package/dist/cli/git-history/history-query.js +2 -0
  157. package/dist/cli/git-history/history-query.js.map +1 -0
  158. package/dist/cli/git-history/history-writer.d.ts +3 -0
  159. package/dist/cli/git-history/history-writer.d.ts.map +1 -0
  160. package/dist/cli/git-history/history-writer.js +14 -0
  161. package/dist/cli/git-history/history-writer.js.map +1 -0
  162. package/dist/cli/index.d.ts.map +1 -1
  163. package/dist/cli/index.js +5 -1
  164. package/dist/cli/index.js.map +1 -1
  165. package/dist/cli/mcp/analyze-tool.d.ts.map +1 -1
  166. package/dist/cli/mcp/analyze-tool.js +10 -4
  167. package/dist/cli/mcp/analyze-tool.js.map +1 -1
  168. package/dist/cli/mcp/mcp-server.d.ts.map +1 -1
  169. package/dist/cli/mcp/mcp-server.js +166 -47
  170. package/dist/cli/mcp/mcp-server.js.map +1 -1
  171. package/dist/cli/mcp/tools/atlas-analytics-tools.d.ts +7 -0
  172. package/dist/cli/mcp/tools/atlas-analytics-tools.d.ts.map +1 -0
  173. package/dist/cli/mcp/tools/atlas-analytics-tools.js +190 -0
  174. package/dist/cli/mcp/tools/atlas-analytics-tools.js.map +1 -0
  175. package/dist/cli/mcp/tools/call-graph-tools.d.ts +3 -0
  176. package/dist/cli/mcp/tools/call-graph-tools.d.ts.map +1 -0
  177. package/dist/cli/mcp/tools/call-graph-tools.js +47 -0
  178. package/dist/cli/mcp/tools/call-graph-tools.js.map +1 -0
  179. package/dist/cli/mcp/tools/ccb-tool.d.ts +3 -0
  180. package/dist/cli/mcp/tools/ccb-tool.d.ts.map +1 -0
  181. package/dist/cli/mcp/tools/ccb-tool.js +63 -0
  182. package/dist/cli/mcp/tools/ccb-tool.js.map +1 -0
  183. package/dist/cli/mcp/tools/cognitive-summary-tool.d.ts +3 -0
  184. package/dist/cli/mcp/tools/cognitive-summary-tool.d.ts.map +1 -0
  185. package/dist/cli/mcp/tools/cognitive-summary-tool.js +118 -0
  186. package/dist/cli/mcp/tools/cognitive-summary-tool.js.map +1 -0
  187. package/dist/cli/mcp/tools/gim-tools.d.ts +3 -0
  188. package/dist/cli/mcp/tools/gim-tools.d.ts.map +1 -0
  189. package/dist/cli/mcp/tools/gim-tools.js +78 -0
  190. package/dist/cli/mcp/tools/gim-tools.js.map +1 -0
  191. package/dist/cli/mcp/tools/git-history-analyze-tool.d.ts +3 -0
  192. package/dist/cli/mcp/tools/git-history-analyze-tool.d.ts.map +1 -0
  193. package/dist/cli/mcp/tools/git-history-analyze-tool.js +172 -0
  194. package/dist/cli/mcp/tools/git-history-analyze-tool.js.map +1 -0
  195. package/dist/cli/mcp/tools/git-history-evidence-pack-tool.d.ts +3 -0
  196. package/dist/cli/mcp/tools/git-history-evidence-pack-tool.d.ts.map +1 -0
  197. package/dist/cli/mcp/tools/git-history-evidence-pack-tool.js +87 -0
  198. package/dist/cli/mcp/tools/git-history-evidence-pack-tool.js.map +1 -0
  199. package/dist/cli/mcp/tools/git-history-tools.d.ts +3 -0
  200. package/dist/cli/mcp/tools/git-history-tools.d.ts.map +1 -0
  201. package/dist/cli/mcp/tools/git-history-tools.js +125 -0
  202. package/dist/cli/mcp/tools/git-history-tools.js.map +1 -0
  203. package/dist/cli/mcp/tools/metric-trend-tools.d.ts +8 -0
  204. package/dist/cli/mcp/tools/metric-trend-tools.d.ts.map +1 -0
  205. package/dist/cli/mcp/tools/metric-trend-tools.js +50 -0
  206. package/dist/cli/mcp/tools/metric-trend-tools.js.map +1 -0
  207. package/dist/cli/mcp/tools/package-metrics-tools.d.ts +7 -0
  208. package/dist/cli/mcp/tools/package-metrics-tools.d.ts.map +1 -0
  209. package/dist/cli/mcp/tools/package-metrics-tools.js +62 -0
  210. package/dist/cli/mcp/tools/package-metrics-tools.js.map +1 -0
  211. package/dist/cli/mcp/tools/test-analysis-tools.d.ts.map +1 -1
  212. package/dist/cli/mcp/tools/test-analysis-tools.js +98 -94
  213. package/dist/cli/mcp/tools/test-analysis-tools.js.map +1 -1
  214. package/dist/cli/metrics-history-writer.d.ts +16 -0
  215. package/dist/cli/metrics-history-writer.d.ts.map +1 -0
  216. package/dist/cli/metrics-history-writer.js +16 -0
  217. package/dist/cli/metrics-history-writer.js.map +1 -0
  218. package/dist/cli/processors/arch-json-provider-types.d.ts +12 -0
  219. package/dist/cli/processors/arch-json-provider-types.d.ts.map +1 -0
  220. package/dist/cli/processors/arch-json-provider-types.js +2 -0
  221. package/dist/cli/processors/arch-json-provider-types.js.map +1 -0
  222. package/dist/cli/processors/arch-json-provider.d.ts +4 -13
  223. package/dist/cli/processors/arch-json-provider.d.ts.map +1 -1
  224. package/dist/cli/processors/arch-json-provider.js +54 -76
  225. package/dist/cli/processors/arch-json-provider.js.map +1 -1
  226. package/dist/cli/processors/arch-json-utils.d.ts +4 -0
  227. package/dist/cli/processors/arch-json-utils.d.ts.map +1 -0
  228. package/dist/cli/processors/arch-json-utils.js +73 -0
  229. package/dist/cli/processors/arch-json-utils.js.map +1 -0
  230. package/dist/cli/processors/diagram-output-router.d.ts +3 -1
  231. package/dist/cli/processors/diagram-output-router.d.ts.map +1 -1
  232. package/dist/cli/processors/diagram-output-router.js +28 -3
  233. package/dist/cli/processors/diagram-output-router.js.map +1 -1
  234. package/dist/cli/processors/diagram-pipeline-runner.d.ts +20 -0
  235. package/dist/cli/processors/diagram-pipeline-runner.d.ts.map +1 -0
  236. package/dist/cli/processors/diagram-pipeline-runner.js +171 -0
  237. package/dist/cli/processors/diagram-pipeline-runner.js.map +1 -0
  238. package/dist/cli/processors/diagram-processor.d.ts +11 -8
  239. package/dist/cli/processors/diagram-processor.d.ts.map +1 -1
  240. package/dist/cli/processors/diagram-processor.js +19 -148
  241. package/dist/cli/processors/diagram-processor.js.map +1 -1
  242. package/dist/cli/processors/query-scope-collector.d.ts +11 -0
  243. package/dist/cli/processors/query-scope-collector.d.ts.map +1 -0
  244. package/dist/cli/processors/query-scope-collector.js +44 -0
  245. package/dist/cli/processors/query-scope-collector.js.map +1 -0
  246. package/dist/cli/processors/test-coverage-writer.d.ts +4 -0
  247. package/dist/cli/processors/test-coverage-writer.d.ts.map +1 -0
  248. package/dist/cli/processors/test-coverage-writer.js +22 -0
  249. package/dist/cli/processors/test-coverage-writer.js.map +1 -0
  250. package/dist/cli/processors/worker-pool-factory.d.ts +6 -0
  251. package/dist/cli/processors/worker-pool-factory.d.ts.map +1 -0
  252. package/dist/cli/processors/worker-pool-factory.js +22 -0
  253. package/dist/cli/processors/worker-pool-factory.js.map +1 -0
  254. package/dist/cli/{progress.d.ts → progress/index.d.ts} +1 -1
  255. package/dist/cli/progress/index.d.ts.map +1 -0
  256. package/dist/cli/{progress.js → progress/index.js} +1 -1
  257. package/dist/cli/progress/index.js.map +1 -0
  258. package/dist/cli/query/arch-index-builder.d.ts +1 -3
  259. package/dist/cli/query/arch-index-builder.d.ts.map +1 -1
  260. package/dist/cli/query/arch-index-builder.js +1 -125
  261. package/dist/cli/query/arch-index-builder.js.map +1 -1
  262. package/dist/cli/query/arch-index.d.ts +2 -16
  263. package/dist/cli/query/arch-index.d.ts.map +1 -1
  264. package/dist/cli/query/arch-index.js +1 -1
  265. package/dist/cli/query/arch-index.js.map +1 -1
  266. package/dist/cli/query/engine-loader.d.ts +9 -1
  267. package/dist/cli/query/engine-loader.d.ts.map +1 -1
  268. package/dist/cli/query/engine-loader.js +5 -1
  269. package/dist/cli/query/engine-loader.js.map +1 -1
  270. package/dist/cli/query/query-artifacts.d.ts.map +1 -1
  271. package/dist/cli/query/query-artifacts.js +2 -1
  272. package/dist/cli/query/query-artifacts.js.map +1 -1
  273. package/dist/cli/query/query-engine.d.ts +3 -90
  274. package/dist/cli/query/query-engine.d.ts.map +1 -1
  275. package/dist/cli/query/query-engine.js +1 -347
  276. package/dist/cli/query/query-engine.js.map +1 -1
  277. package/dist/cli/utils/java-project-structure-detector.js +1 -1
  278. package/dist/cli/utils/java-project-structure-detector.js.map +1 -1
  279. package/dist/cli/utils/kotlin-project-structure-detector.d.ts +7 -0
  280. package/dist/cli/utils/kotlin-project-structure-detector.d.ts.map +1 -0
  281. package/dist/cli/utils/kotlin-project-structure-detector.js +101 -0
  282. package/dist/cli/utils/kotlin-project-structure-detector.js.map +1 -0
  283. package/dist/cli/utils/output-path-resolver.d.ts.map +1 -1
  284. package/dist/cli/utils/output-path-resolver.js.map +1 -1
  285. package/dist/cli/utils/project-language-detector.d.ts +1 -1
  286. package/dist/cli/utils/project-language-detector.d.ts.map +1 -1
  287. package/dist/cli/utils/project-language-detector.js +5 -1
  288. package/dist/cli/utils/project-language-detector.js.map +1 -1
  289. package/dist/cli/utils/project-structure-detector.js +3 -3
  290. package/dist/cli/utils/project-structure-detector.js.map +1 -1
  291. package/dist/cli/utils/test-output-writer.d.ts +1 -1
  292. package/dist/cli/utils/test-output-writer.d.ts.map +1 -1
  293. package/dist/cli/utils/test-output-writer.js.map +1 -1
  294. package/dist/core/entity-type-registry.d.ts +10 -0
  295. package/dist/core/entity-type-registry.d.ts.map +1 -0
  296. package/dist/core/entity-type-registry.js +17 -0
  297. package/dist/core/entity-type-registry.js.map +1 -0
  298. package/dist/core/interfaces/dependency.d.ts +1 -1
  299. package/dist/core/interfaces/dependency.d.ts.map +1 -1
  300. package/dist/core/interfaces/index.d.ts +2 -0
  301. package/dist/core/interfaces/index.d.ts.map +1 -1
  302. package/dist/core/interfaces/index.js.map +1 -1
  303. package/dist/core/interfaces/language-plugin.d.ts +8 -1
  304. package/dist/core/interfaces/language-plugin.d.ts.map +1 -1
  305. package/dist/core/interfaces/parser-facade.d.ts +5 -0
  306. package/dist/core/interfaces/parser-facade.d.ts.map +1 -0
  307. package/dist/core/interfaces/parser-facade.js +2 -0
  308. package/dist/core/interfaces/parser-facade.js.map +1 -0
  309. package/dist/core/interfaces/renderer-facade.d.ts +8 -0
  310. package/dist/core/interfaces/renderer-facade.d.ts.map +1 -0
  311. package/dist/core/interfaces/renderer-facade.js +2 -0
  312. package/dist/core/interfaces/renderer-facade.js.map +1 -0
  313. package/dist/core/interfaces/validation.d.ts.map +1 -1
  314. package/dist/core/plugin-registry.d.ts.map +1 -1
  315. package/dist/core/plugin-registry.js +2 -0
  316. package/dist/core/plugin-registry.js.map +1 -1
  317. package/dist/core/query/arch-index-builder.d.ts +4 -0
  318. package/dist/core/query/arch-index-builder.d.ts.map +1 -0
  319. package/dist/core/query/arch-index-builder.js +126 -0
  320. package/dist/core/query/arch-index-builder.js.map +1 -0
  321. package/dist/core/query/arch-index.d.ts +17 -0
  322. package/dist/core/query/arch-index.d.ts.map +1 -0
  323. package/dist/core/query/arch-index.js +2 -0
  324. package/dist/core/query/arch-index.js.map +1 -0
  325. package/dist/core/query/arch-metrics-cognitive.d.ts +32 -0
  326. package/dist/core/query/arch-metrics-cognitive.d.ts.map +1 -0
  327. package/dist/core/query/arch-metrics-cognitive.js +60 -0
  328. package/dist/core/query/arch-metrics-cognitive.js.map +1 -0
  329. package/dist/core/query/arch-metrics-quality.d.ts +24 -0
  330. package/dist/core/query/arch-metrics-quality.d.ts.map +1 -0
  331. package/dist/core/query/arch-metrics-quality.js +86 -0
  332. package/dist/core/query/arch-metrics-quality.js.map +1 -0
  333. package/dist/core/query/arch-metrics-structure.d.ts +43 -0
  334. package/dist/core/query/arch-metrics-structure.d.ts.map +1 -0
  335. package/dist/core/query/arch-metrics-structure.js +291 -0
  336. package/dist/core/query/arch-metrics-structure.js.map +1 -0
  337. package/dist/core/query/arch-metrics.d.ts +54 -0
  338. package/dist/core/query/arch-metrics.d.ts.map +1 -0
  339. package/dist/core/query/arch-metrics.js +42 -0
  340. package/dist/core/query/arch-metrics.js.map +1 -0
  341. package/dist/core/query/edge-list-serializer.d.ts +4 -0
  342. package/dist/core/query/edge-list-serializer.d.ts.map +1 -0
  343. package/dist/core/query/edge-list-serializer.js +24 -0
  344. package/dist/core/query/edge-list-serializer.js.map +1 -0
  345. package/dist/core/query/entity-query-service.d.ts +15 -0
  346. package/dist/core/query/entity-query-service.d.ts.map +1 -0
  347. package/dist/core/query/entity-query-service.js +51 -0
  348. package/dist/core/query/entity-query-service.js.map +1 -0
  349. package/dist/core/query/extension-accessor.d.ts +15 -0
  350. package/dist/core/query/extension-accessor.d.ts.map +1 -0
  351. package/dist/core/query/extension-accessor.js +28 -0
  352. package/dist/core/query/extension-accessor.js.map +1 -0
  353. package/dist/core/query/index.d.ts +8 -0
  354. package/dist/core/query/index.d.ts.map +1 -0
  355. package/dist/core/query/index.js +6 -0
  356. package/dist/core/query/index.js.map +1 -0
  357. package/dist/core/query/output-scope-filter.d.ts +6 -0
  358. package/dist/core/query/output-scope-filter.d.ts.map +1 -0
  359. package/dist/core/query/output-scope-filter.js +45 -0
  360. package/dist/core/query/output-scope-filter.js.map +1 -0
  361. package/dist/core/query/query-engine.d.ts +116 -0
  362. package/dist/core/query/query-engine.d.ts.map +1 -0
  363. package/dist/core/query/query-engine.js +105 -0
  364. package/dist/core/query/query-engine.js.map +1 -0
  365. package/dist/core/query/relation-query-service.d.ts +21 -0
  366. package/dist/core/query/relation-query-service.d.ts.map +1 -0
  367. package/dist/core/query/relation-query-service.js +124 -0
  368. package/dist/core/query/relation-query-service.js.map +1 -0
  369. package/dist/mermaid/auto-repair.d.ts +1 -1
  370. package/dist/mermaid/auto-repair.d.ts.map +1 -1
  371. package/dist/mermaid/auto-repair.js +6 -6
  372. package/dist/mermaid/auto-repair.js.map +1 -1
  373. package/dist/mermaid/cpp-package-flowchart-generator.js +1 -1
  374. package/dist/mermaid/cpp-package-flowchart-generator.js.map +1 -1
  375. package/dist/mermaid/diagram-generator.d.ts +2 -1
  376. package/dist/mermaid/diagram-generator.d.ts.map +1 -1
  377. package/dist/mermaid/diagram-generator.js +17 -16
  378. package/dist/mermaid/diagram-generator.js.map +1 -1
  379. package/dist/mermaid/generator-formatting.d.ts +1 -1
  380. package/dist/mermaid/generator-formatting.d.ts.map +1 -1
  381. package/dist/mermaid/generator-formatting.js +2 -0
  382. package/dist/mermaid/generator-formatting.js.map +1 -1
  383. package/dist/mermaid/generator-validation.d.ts.map +1 -1
  384. package/dist/mermaid/generator-validation.js.map +1 -1
  385. package/dist/mermaid/generator.d.ts +5 -10
  386. package/dist/mermaid/generator.d.ts.map +1 -1
  387. package/dist/mermaid/generator.js +192 -227
  388. package/dist/mermaid/generator.js.map +1 -1
  389. package/dist/mermaid/grouper.d.ts.map +1 -1
  390. package/dist/mermaid/grouper.js.map +1 -1
  391. package/dist/mermaid/test-coverage-renderer.d.ts +1 -1
  392. package/dist/mermaid/test-coverage-renderer.d.ts.map +1 -1
  393. package/dist/mermaid/ts-module-graph-renderer.d.ts +6 -2
  394. package/dist/mermaid/ts-module-graph-renderer.d.ts.map +1 -1
  395. package/dist/mermaid/ts-module-graph-renderer.js +49 -2
  396. package/dist/mermaid/ts-module-graph-renderer.js.map +1 -1
  397. package/dist/mermaid/validator-quality.js +1 -1
  398. package/dist/mermaid/validator-quality.js.map +1 -1
  399. package/dist/mermaid/validator-render.js +1 -1
  400. package/dist/mermaid/validator-render.js.map +1 -1
  401. package/dist/parser/archjson-aggregator.d.ts +1 -0
  402. package/dist/parser/archjson-aggregator.d.ts.map +1 -1
  403. package/dist/parser/archjson-aggregator.js +37 -7
  404. package/dist/parser/archjson-aggregator.js.map +1 -1
  405. package/dist/parser/call-edge-extractor.d.ts +13 -0
  406. package/dist/parser/call-edge-extractor.d.ts.map +1 -0
  407. package/dist/parser/call-edge-extractor.js +70 -0
  408. package/dist/parser/call-edge-extractor.js.map +1 -0
  409. package/dist/parser/metrics-calculator.d.ts.map +1 -1
  410. package/dist/parser/metrics-calculator.js +2 -1
  411. package/dist/parser/metrics-calculator.js.map +1 -1
  412. package/dist/parser/parallel-parser.d.ts +2 -1
  413. package/dist/parser/parallel-parser.d.ts.map +1 -1
  414. package/dist/parser/parallel-parser.js +4 -2
  415. package/dist/parser/parallel-parser.js.map +1 -1
  416. package/dist/parser/relation-extractor.d.ts +1 -0
  417. package/dist/parser/relation-extractor.d.ts.map +1 -1
  418. package/dist/parser/relation-extractor.js +84 -4
  419. package/dist/parser/relation-extractor.js.map +1 -1
  420. package/dist/parser/typescript-parser.d.ts +2 -0
  421. package/dist/parser/typescript-parser.d.ts.map +1 -1
  422. package/dist/parser/typescript-parser.js +44 -5
  423. package/dist/parser/typescript-parser.js.map +1 -1
  424. package/dist/plugins/cpp/archjson-mapper.d.ts.map +1 -1
  425. package/dist/plugins/cpp/archjson-mapper.js.map +1 -1
  426. package/dist/plugins/cpp/builders/class-builder.d.ts.map +1 -1
  427. package/dist/plugins/cpp/builders/class-builder.js +6 -1
  428. package/dist/plugins/cpp/builders/class-builder.js.map +1 -1
  429. package/dist/plugins/cpp/index.d.ts +3 -3
  430. package/dist/plugins/cpp/index.d.ts.map +1 -1
  431. package/dist/plugins/cpp/index.js +36 -7
  432. package/dist/plugins/cpp/index.js.map +1 -1
  433. package/dist/plugins/cpp/tree-sitter-bridge.d.ts.map +1 -1
  434. package/dist/plugins/cpp/tree-sitter-bridge.js +10 -7
  435. package/dist/plugins/cpp/tree-sitter-bridge.js.map +1 -1
  436. package/dist/plugins/golang/archjson-mapper.d.ts +3 -1
  437. package/dist/plugins/golang/archjson-mapper.d.ts.map +1 -1
  438. package/dist/plugins/golang/archjson-mapper.js +56 -1
  439. package/dist/plugins/golang/archjson-mapper.js.map +1 -1
  440. package/dist/plugins/golang/atlas/behavior-analyzer.d.ts +2 -1
  441. package/dist/plugins/golang/atlas/behavior-analyzer.d.ts.map +1 -1
  442. package/dist/plugins/golang/atlas/behavior-analyzer.js +2 -2
  443. package/dist/plugins/golang/atlas/behavior-analyzer.js.map +1 -1
  444. package/dist/plugins/golang/atlas/builders/capability-graph-builder.d.ts +5 -1
  445. package/dist/plugins/golang/atlas/builders/capability-graph-builder.d.ts.map +1 -1
  446. package/dist/plugins/golang/atlas/builders/capability-graph-builder.js +43 -1
  447. package/dist/plugins/golang/atlas/builders/capability-graph-builder.js.map +1 -1
  448. package/dist/plugins/golang/atlas/builders/flow-graph-builder.d.ts +3 -0
  449. package/dist/plugins/golang/atlas/builders/flow-graph-builder.d.ts.map +1 -1
  450. package/dist/plugins/golang/atlas/builders/flow-graph-builder.js +166 -6
  451. package/dist/plugins/golang/atlas/builders/flow-graph-builder.js.map +1 -1
  452. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.d.ts.map +1 -1
  453. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.js +12 -5
  454. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.js.map +1 -1
  455. package/dist/plugins/golang/atlas/builders/package-graph-builder.js +5 -5
  456. package/dist/plugins/golang/atlas/builders/package-graph-builder.js.map +1 -1
  457. package/dist/plugins/golang/atlas/framework-detector.d.ts.map +1 -1
  458. package/dist/plugins/golang/atlas/framework-detector.js +2 -0
  459. package/dist/plugins/golang/atlas/framework-detector.js.map +1 -1
  460. package/dist/plugins/golang/atlas/go-mod-resolver.d.ts.map +1 -1
  461. package/dist/plugins/golang/atlas/go-mod-resolver.js +3 -3
  462. package/dist/plugins/golang/atlas/go-mod-resolver.js.map +1 -1
  463. package/dist/plugins/golang/atlas/renderers/atlas-renderer.d.ts.map +1 -1
  464. package/dist/plugins/golang/atlas/renderers/atlas-renderer.js +32 -2
  465. package/dist/plugins/golang/atlas/renderers/atlas-renderer.js.map +1 -1
  466. package/dist/plugins/golang/atlas/renderers/capability-mermaid-template.d.ts.map +1 -1
  467. package/dist/plugins/golang/atlas/renderers/capability-mermaid-template.js +16 -5
  468. package/dist/plugins/golang/atlas/renderers/capability-mermaid-template.js.map +1 -1
  469. package/dist/plugins/golang/atlas/renderers/flow-mermaid-template.js.map +1 -1
  470. package/dist/plugins/golang/atlas/renderers/goroutine-mermaid-template.d.ts.map +1 -1
  471. package/dist/plugins/golang/atlas/renderers/goroutine-mermaid-template.js.map +1 -1
  472. package/dist/plugins/golang/atlas/renderers/mermaid-templates.d.ts.map +1 -1
  473. package/dist/plugins/golang/atlas/renderers/mermaid-templates.js.map +1 -1
  474. package/dist/plugins/golang/atlas/renderers/package-mermaid-template.d.ts.map +1 -1
  475. package/dist/plugins/golang/atlas/renderers/package-mermaid-template.js +5 -5
  476. package/dist/plugins/golang/atlas/renderers/package-mermaid-template.js.map +1 -1
  477. package/dist/plugins/golang/atlas/renderers/template-shared.d.ts.map +1 -1
  478. package/dist/plugins/golang/atlas/renderers/template-shared.js.map +1 -1
  479. package/dist/plugins/golang/atlas/types.d.ts +9 -3
  480. package/dist/plugins/golang/atlas/types.d.ts.map +1 -1
  481. package/dist/plugins/golang/atlas/types.js +1 -1
  482. package/dist/plugins/golang/atlas/types.js.map +1 -1
  483. package/dist/plugins/golang/builders/function-builder.d.ts +19 -0
  484. package/dist/plugins/golang/builders/function-builder.d.ts.map +1 -0
  485. package/dist/plugins/golang/builders/function-builder.js +206 -0
  486. package/dist/plugins/golang/builders/function-builder.js.map +1 -0
  487. package/dist/plugins/golang/builders/goroutine-builder.d.ts +11 -0
  488. package/dist/plugins/golang/builders/goroutine-builder.d.ts.map +1 -0
  489. package/dist/plugins/golang/builders/goroutine-builder.js +147 -0
  490. package/dist/plugins/golang/builders/goroutine-builder.js.map +1 -0
  491. package/dist/plugins/golang/builders/interface-builder.d.ts +9 -0
  492. package/dist/plugins/golang/builders/interface-builder.d.ts.map +1 -0
  493. package/dist/plugins/golang/builders/interface-builder.js +126 -0
  494. package/dist/plugins/golang/builders/interface-builder.js.map +1 -0
  495. package/dist/plugins/golang/builders/node-utils.d.ts +8 -0
  496. package/dist/plugins/golang/builders/node-utils.d.ts.map +1 -0
  497. package/dist/plugins/golang/builders/node-utils.js +18 -0
  498. package/dist/plugins/golang/builders/node-utils.js.map +1 -0
  499. package/dist/plugins/golang/builders/struct-builder.d.ts +12 -0
  500. package/dist/plugins/golang/builders/struct-builder.d.ts.map +1 -0
  501. package/dist/plugins/golang/builders/struct-builder.js +81 -0
  502. package/dist/plugins/golang/builders/struct-builder.js.map +1 -0
  503. package/dist/plugins/golang/go-atlas-adapter.d.ts +11 -0
  504. package/dist/plugins/golang/go-atlas-adapter.d.ts.map +1 -0
  505. package/dist/plugins/golang/go-atlas-adapter.js +47 -0
  506. package/dist/plugins/golang/go-atlas-adapter.js.map +1 -0
  507. package/dist/plugins/golang/go-atlas-coordinator.d.ts +12 -0
  508. package/dist/plugins/golang/go-atlas-coordinator.d.ts.map +1 -0
  509. package/dist/plugins/golang/go-atlas-coordinator.js +76 -0
  510. package/dist/plugins/golang/go-atlas-coordinator.js.map +1 -0
  511. package/dist/plugins/golang/go-mod-reader.d.ts +2 -0
  512. package/dist/plugins/golang/go-mod-reader.d.ts.map +1 -0
  513. package/dist/plugins/golang/go-mod-reader.js +12 -0
  514. package/dist/plugins/golang/go-mod-reader.js.map +1 -0
  515. package/dist/plugins/golang/go-parse-coordinator.d.ts +23 -0
  516. package/dist/plugins/golang/go-parse-coordinator.d.ts.map +1 -0
  517. package/dist/plugins/golang/go-parse-coordinator.js +137 -0
  518. package/dist/plugins/golang/go-parse-coordinator.js.map +1 -0
  519. package/dist/plugins/golang/go-test-analyzer.d.ts +10 -0
  520. package/dist/plugins/golang/go-test-analyzer.d.ts.map +1 -0
  521. package/dist/plugins/golang/go-test-analyzer.js +90 -0
  522. package/dist/plugins/golang/go-test-analyzer.js.map +1 -0
  523. package/dist/plugins/golang/gopls-client.js +6 -6
  524. package/dist/plugins/golang/gopls-client.js.map +1 -1
  525. package/dist/plugins/golang/gopls-interface-resolver.d.ts +19 -0
  526. package/dist/plugins/golang/gopls-interface-resolver.d.ts.map +1 -0
  527. package/dist/plugins/golang/gopls-interface-resolver.js +49 -0
  528. package/dist/plugins/golang/gopls-interface-resolver.js.map +1 -0
  529. package/dist/plugins/golang/index.d.ts +12 -17
  530. package/dist/plugins/golang/index.d.ts.map +1 -1
  531. package/dist/plugins/golang/index.js +44 -326
  532. package/dist/plugins/golang/index.js.map +1 -1
  533. package/dist/plugins/golang/tree-sitter-bridge.d.ts +4 -24
  534. package/dist/plugins/golang/tree-sitter-bridge.d.ts.map +1 -1
  535. package/dist/plugins/golang/tree-sitter-bridge.js +16 -526
  536. package/dist/plugins/golang/tree-sitter-bridge.js.map +1 -1
  537. package/dist/plugins/golang/types.d.ts +5 -0
  538. package/dist/plugins/golang/types.d.ts.map +1 -1
  539. package/dist/plugins/java/archjson-mapper.d.ts +3 -1
  540. package/dist/plugins/java/archjson-mapper.d.ts.map +1 -1
  541. package/dist/plugins/java/archjson-mapper.js +123 -0
  542. package/dist/plugins/java/archjson-mapper.js.map +1 -1
  543. package/dist/plugins/java/dependency-extractor.js +2 -2
  544. package/dist/plugins/java/dependency-extractor.js.map +1 -1
  545. package/dist/plugins/java/index.d.ts +2 -2
  546. package/dist/plugins/java/index.d.ts.map +1 -1
  547. package/dist/plugins/java/index.js +73 -16
  548. package/dist/plugins/java/index.js.map +1 -1
  549. package/dist/plugins/java/maven-crossmodule-parser.d.ts +9 -0
  550. package/dist/plugins/java/maven-crossmodule-parser.d.ts.map +1 -0
  551. package/dist/plugins/java/maven-crossmodule-parser.js +54 -0
  552. package/dist/plugins/java/maven-crossmodule-parser.js.map +1 -0
  553. package/dist/plugins/java/tree-sitter-bridge.d.ts +2 -0
  554. package/dist/plugins/java/tree-sitter-bridge.d.ts.map +1 -1
  555. package/dist/plugins/java/tree-sitter-bridge.js +70 -7
  556. package/dist/plugins/java/tree-sitter-bridge.js.map +1 -1
  557. package/dist/plugins/java/types.d.ts +7 -0
  558. package/dist/plugins/java/types.d.ts.map +1 -1
  559. package/dist/plugins/kotlin/archjson-mapper.d.ts +12 -0
  560. package/dist/plugins/kotlin/archjson-mapper.d.ts.map +1 -0
  561. package/dist/plugins/kotlin/archjson-mapper.js +157 -0
  562. package/dist/plugins/kotlin/archjson-mapper.js.map +1 -0
  563. package/dist/plugins/kotlin/builders/class-builder.d.ts +26 -0
  564. package/dist/plugins/kotlin/builders/class-builder.d.ts.map +1 -0
  565. package/dist/plugins/kotlin/builders/class-builder.js +366 -0
  566. package/dist/plugins/kotlin/builders/class-builder.js.map +1 -0
  567. package/dist/plugins/kotlin/builders/function-builder.d.ts +15 -0
  568. package/dist/plugins/kotlin/builders/function-builder.d.ts.map +1 -0
  569. package/dist/plugins/kotlin/builders/function-builder.js +172 -0
  570. package/dist/plugins/kotlin/builders/function-builder.js.map +1 -0
  571. package/dist/plugins/kotlin/builders/import-resolver.d.ts +5 -0
  572. package/dist/plugins/kotlin/builders/import-resolver.d.ts.map +1 -0
  573. package/dist/plugins/kotlin/builders/import-resolver.js +10 -0
  574. package/dist/plugins/kotlin/builders/import-resolver.js.map +1 -0
  575. package/dist/plugins/kotlin/dependency-extractor.d.ts +13 -0
  576. package/dist/plugins/kotlin/dependency-extractor.d.ts.map +1 -0
  577. package/dist/plugins/kotlin/dependency-extractor.js +104 -0
  578. package/dist/plugins/kotlin/dependency-extractor.js.map +1 -0
  579. package/dist/plugins/kotlin/index.d.ts +26 -0
  580. package/dist/plugins/kotlin/index.d.ts.map +1 -0
  581. package/dist/plugins/kotlin/index.js +238 -0
  582. package/dist/plugins/kotlin/index.js.map +1 -0
  583. package/dist/plugins/kotlin/kotlin-type-extractor.d.ts +7 -0
  584. package/dist/plugins/kotlin/kotlin-type-extractor.d.ts.map +1 -0
  585. package/dist/plugins/kotlin/kotlin-type-extractor.js +96 -0
  586. package/dist/plugins/kotlin/kotlin-type-extractor.js.map +1 -0
  587. package/dist/plugins/kotlin/tree-sitter-bridge.d.ts +15 -0
  588. package/dist/plugins/kotlin/tree-sitter-bridge.d.ts.map +1 -0
  589. package/dist/plugins/kotlin/tree-sitter-bridge.js +79 -0
  590. package/dist/plugins/kotlin/tree-sitter-bridge.js.map +1 -0
  591. package/dist/plugins/kotlin/types.d.ts +48 -0
  592. package/dist/plugins/kotlin/types.d.ts.map +1 -0
  593. package/dist/plugins/kotlin/types.js +2 -0
  594. package/dist/plugins/kotlin/types.js.map +1 -0
  595. package/dist/plugins/python/archjson-mapper.d.ts +7 -2
  596. package/dist/plugins/python/archjson-mapper.d.ts.map +1 -1
  597. package/dist/plugins/python/archjson-mapper.js +117 -10
  598. package/dist/plugins/python/archjson-mapper.js.map +1 -1
  599. package/dist/plugins/python/dependency-extractor.js +1 -1
  600. package/dist/plugins/python/dependency-extractor.js.map +1 -1
  601. package/dist/plugins/python/import-extractor.d.ts +11 -0
  602. package/dist/plugins/python/import-extractor.d.ts.map +1 -0
  603. package/dist/plugins/python/import-extractor.js +67 -0
  604. package/dist/plugins/python/import-extractor.js.map +1 -0
  605. package/dist/plugins/python/index.d.ts +5 -3
  606. package/dist/plugins/python/index.d.ts.map +1 -1
  607. package/dist/plugins/python/index.js +115 -12
  608. package/dist/plugins/python/index.js.map +1 -1
  609. package/dist/plugins/python/tree-sitter-bridge.d.ts +2 -0
  610. package/dist/plugins/python/tree-sitter-bridge.d.ts.map +1 -1
  611. package/dist/plugins/python/tree-sitter-bridge.js +67 -1
  612. package/dist/plugins/python/tree-sitter-bridge.js.map +1 -1
  613. package/dist/plugins/python/types.d.ts +6 -0
  614. package/dist/plugins/python/types.d.ts.map +1 -1
  615. package/dist/plugins/shared/mapper-utils.d.ts +1 -1
  616. package/dist/plugins/shared/mapper-utils.d.ts.map +1 -1
  617. package/dist/plugins/shared/mapper-utils.js.map +1 -1
  618. package/dist/plugins/typescript/builders/module-graph-builder.d.ts +2 -2
  619. package/dist/plugins/typescript/builders/module-graph-builder.d.ts.map +1 -1
  620. package/dist/plugins/typescript/builders/module-graph-builder.js +29 -8
  621. package/dist/plugins/typescript/builders/module-graph-builder.js.map +1 -1
  622. package/dist/plugins/typescript/index.d.ts +3 -2
  623. package/dist/plugins/typescript/index.d.ts.map +1 -1
  624. package/dist/plugins/typescript/index.js +116 -10
  625. package/dist/plugins/typescript/index.js.map +1 -1
  626. package/dist/plugins/typescript/typescript-analyzer.d.ts +2 -2
  627. package/dist/plugins/typescript/typescript-analyzer.d.ts.map +1 -1
  628. package/dist/plugins/typescript/typescript-analyzer.js +1 -1
  629. package/dist/plugins/typescript/typescript-analyzer.js.map +1 -1
  630. package/dist/types/cognitive-summary.d.ts +20 -0
  631. package/dist/types/cognitive-summary.d.ts.map +1 -0
  632. package/dist/types/cognitive-summary.js +2 -0
  633. package/dist/types/cognitive-summary.js.map +1 -0
  634. package/dist/types/config-cli.d.ts +4 -0
  635. package/dist/types/config-cli.d.ts.map +1 -1
  636. package/dist/types/config-global.d.ts +4 -0
  637. package/dist/types/config-global.d.ts.map +1 -1
  638. package/dist/types/{extensions.d.ts → extensions/go-atlas.d.ts} +5 -99
  639. package/dist/types/extensions/go-atlas.d.ts.map +1 -0
  640. package/dist/types/extensions/go-atlas.js +2 -0
  641. package/dist/types/extensions/go-atlas.js.map +1 -0
  642. package/dist/types/extensions/index.d.ts +15 -0
  643. package/dist/types/extensions/index.d.ts.map +1 -0
  644. package/dist/types/extensions/index.js +5 -0
  645. package/dist/types/extensions/index.js.map +1 -0
  646. package/dist/types/extensions/project-semantics.d.ts +55 -0
  647. package/dist/types/extensions/project-semantics.d.ts.map +1 -0
  648. package/dist/types/extensions/project-semantics.js +126 -0
  649. package/dist/types/extensions/project-semantics.js.map +1 -0
  650. package/dist/types/extensions/test-analysis.d.ts +68 -0
  651. package/dist/types/extensions/test-analysis.d.ts.map +1 -0
  652. package/dist/types/extensions/test-analysis.js +2 -0
  653. package/dist/types/extensions/test-analysis.js.map +1 -0
  654. package/dist/types/extensions/ts-analysis.d.ts +33 -0
  655. package/dist/types/extensions/ts-analysis.d.ts.map +1 -0
  656. package/dist/types/extensions/ts-analysis.js +2 -0
  657. package/dist/types/extensions/ts-analysis.js.map +1 -0
  658. package/dist/types/git-history.d.ts +68 -0
  659. package/dist/types/git-history.d.ts.map +1 -0
  660. package/dist/types/git-history.js +2 -0
  661. package/dist/types/git-history.js.map +1 -0
  662. package/dist/types/index.d.ts +38 -29
  663. package/dist/types/index.d.ts.map +1 -1
  664. package/dist/types/index.js +2 -1
  665. package/dist/types/index.js.map +1 -1
  666. package/dist/types/metric-vector.d.ts +17 -0
  667. package/dist/types/metric-vector.d.ts.map +1 -0
  668. package/dist/types/metric-vector.js +2 -0
  669. package/dist/types/metric-vector.js.map +1 -0
  670. package/dist/utils/cli-detector.js +2 -2
  671. package/dist/utils/cli-detector.js.map +1 -1
  672. package/dist/utils/tsconfig-finder.d.ts.map +1 -1
  673. package/dist/utils/tsconfig-finder.js +6 -1
  674. package/dist/utils/tsconfig-finder.js.map +1 -1
  675. package/node_modules/tree-sitter/prebuilds/linux-x64/node.napi.glibc.node +0 -0
  676. package/package.json +5 -2
  677. package/dist/cli/cache-manager.d.ts.map +0 -1
  678. package/dist/cli/cache-manager.js.map +0 -1
  679. package/dist/cli/error-handler.d.ts +0 -15
  680. package/dist/cli/error-handler.d.ts.map +0 -1
  681. package/dist/cli/error-handler.js.map +0 -1
  682. package/dist/cli/errors.d.ts.map +0 -1
  683. package/dist/cli/errors.js +0 -31
  684. package/dist/cli/errors.js.map +0 -1
  685. package/dist/cli/progress.d.ts.map +0 -1
  686. package/dist/cli/progress.js.map +0 -1
  687. package/dist/types/extensions.d.ts.map +0 -1
  688. package/dist/types/extensions.js +0 -4
  689. package/dist/types/extensions.js.map +0 -1
package/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # ArchGuard
2
2
 
3
- ArchGuard analyzes source code to extract architectural insights and generates **Mermaid diagrams** at multiple levels of detail. It supports TypeScript (stable), Go (stable), Java (beta), and Python (beta) through a plugin system, and exposes query and MCP workflows for architecture inspection.
3
+ ArchGuard analyzes source code to extract architectural insights and generates **Mermaid diagrams** at multiple levels of detail. It supports TypeScript (stable), Go (stable), Java (beta), Python (beta), C++ (beta), and Kotlin/Android (beta) through a plugin system, and exposes query and MCP workflows for architecture inspection.
4
4
 
5
5
  ## Screenshots
6
6
 
@@ -16,9 +16,11 @@ ArchGuard analyzes source code to extract architectural insights and generates *
16
16
  ## Features
17
17
 
18
18
  - **AI-Native MCP Interface**: Query architecture in natural language from Claude Code or Codex — analyze projects, trace dependencies, find implementers, detect cycles
19
- - **Multi-Language Support**: TypeScript, Go, Java, Python via plugin system
19
+ - **Multi-Language Support**: TypeScript, Go, Java, Python, C++, Kotlin/Android via plugin system
20
20
  - **Multi-Level Diagrams**: Package (high-level), Class (default), Method (low-level)
21
21
  - **Go Architecture Atlas**: 4-layer visualization — package graph, capability graph, goroutine topology, flow graph
22
+ - **Kotlin/Android Support**: Auto-detect Kotlin projects, parse `build.gradle.kts` / `settings.gradle.kts`, and plan multi-module diagrams
23
+ - **Static Test Analysis**: Test coverage mapping, assertion density, orphan detection, and quality issues — no test execution required, including Kotlin/Android projects
22
24
  - **Parallel Processing**: High-performance parsing with configurable concurrency
23
25
  - **Smart Caching**: File-based caching with SHA-256 hashing for fast repeated runs
24
26
  - **Zero External Dependencies**: Local Mermaid rendering using isomorphic-mermaid
@@ -42,6 +44,24 @@ Register the MCP server (project scope):
42
44
  claude mcp add --scope project archguard -- archguard mcp
43
45
  ```
44
46
 
47
+ Or install it for Claude Code user scope, including the bundled repository
48
+ skills from this checkout:
49
+
50
+ ```bash
51
+ bash scripts/install-claude-user-scope.sh
52
+ ```
53
+
54
+ This installs the `archguard` binary globally for the current user, registers
55
+ `archguard mcp` in `~/.claude/mcp.json`, and syncs all skills from
56
+ `.agents/skills/` into `~/.claude/skills/`.
57
+
58
+ If you already have fresh `dist/` artifacts and only want to re-install the user
59
+ scope wiring, use:
60
+
61
+ ```bash
62
+ bash scripts/install-claude-user-scope.sh --skip-build
63
+ ```
64
+
45
65
  Then ask Claude to analyze any project:
46
66
 
47
67
  > Analyze the architecture of `/path/to/my-project` using archguard MCP.
@@ -58,6 +78,18 @@ Claude will call `archguard_analyze` to parse the project and build a query inde
58
78
 
59
79
  > Based on the archguard analysis, suggest refactoring directions for reducing coupling.
60
80
 
81
+ To include test quality analysis alongside architecture inspection:
82
+
83
+ > Analyze the architecture and test coverage of `/path/to/my-project` using archguard MCP. Check which source entities lack test coverage and flag any test files with no assertions.
84
+
85
+ Claude will call `archguard_analyze(includeTests: true)`, then sequence through the test analysis tools:
86
+
87
+ > Which test files have no assertions?
88
+
89
+ > Show me the entity coverage ratio and assertion density for this project.
90
+
91
+ > List all orphan test files — tests with no detected link to source entities.
92
+
61
93
  **Re-using an existing analysis**: If the project was already analyzed in a previous session, query artifacts persist in `.archguard/query/`. You can skip re-analysis and query the cache directly:
62
94
 
63
95
  > Using the existing archguard cache, show me what depends on `DiagramProcessor`.
@@ -86,7 +118,7 @@ Point archguard at any project path — no configuration file needed:
86
118
 
87
119
  > Analyze the architecture of `/home/user/work/my-project` using archguard MCP.
88
120
 
89
- Archguard auto-detects the language and project structure, generates diagrams under `<project>/.archguard/`, and builds the query index for follow-up queries.
121
+ Archguard auto-detects the language and project structure, generates diagrams under `<project>/.archguard/`, and builds the query index for follow-up queries. Kotlin/Android projects are detected from `build.gradle.kts`, `settings.gradle.kts`, `.kt`, and `.kts` markers and can be analyzed without forcing `--lang kotlin`.
90
122
 
91
123
  ### Standalone CLI
92
124
 
@@ -117,7 +149,7 @@ archguard analyze [options]
117
149
 
118
150
  - `-s, --sources <paths...>` - Source directories; triggers auto-detection and multi-diagram generation
119
151
  - `--diagrams <levels...>` - Filter by level: `package` | `class` | `method` (language-dependent)
120
- - `--lang <language>` - Language: `typescript` | `go` | `java` | `python` (auto-detected)
152
+ - `--lang <language>` - Language: `typescript` | `go` | `java` | `python` | `cpp` | `kotlin` (auto-detected)
121
153
  - `--config <path>` - Config file path (default: `archguard.config.json`)
122
154
 
123
155
  **Output:**
@@ -149,11 +181,6 @@ archguard analyze [options]
149
181
  - `--atlas-include-tests` - Include test packages in Atlas
150
182
  - `--atlas-protocols <protocols>` - Protocols included in flow graph
151
183
 
152
- **Claude CLI:**
153
-
154
- - `--cli-command <command>` - Claude CLI executable (default: `claude`)
155
- - `--cli-args <args>` - Additional Claude CLI arguments
156
-
157
184
  **Examples:**
158
185
 
159
186
  ```bash
@@ -180,6 +207,15 @@ archguard analyze -s ./src -e "**/*.test.ts" "**/*.spec.ts"
180
207
 
181
208
  # Dark theme
182
209
  archguard analyze -s ./src --mermaid-theme dark
210
+
211
+ # Analyze architecture and generate test quality report
212
+ archguard analyze --include-tests
213
+
214
+ # Refresh test report only, skip re-parsing source (faster)
215
+ archguard analyze --tests-only
216
+
217
+ # Kotlin/Android project (explicit language selection is optional)
218
+ archguard analyze -s ./app/src/main/java --lang kotlin
183
219
  ```
184
220
 
185
221
  ### `query`
@@ -237,6 +273,8 @@ codex mcp add archguard -- archguard mcp
237
273
 
238
274
  **Available MCP tools:**
239
275
 
276
+ Architecture query:
277
+
240
278
  | Tool | Purpose |
241
279
  |------|---------|
242
280
  | `archguard_summary` | Project overview: entity/relation counts, scope list |
@@ -247,7 +285,26 @@ codex mcp add archguard -- archguard mcp
247
285
  | `archguard_find_subclasses` | All subclasses of a base class |
248
286
  | `archguard_get_file_entities` | All entities defined in a source file |
249
287
  | `archguard_detect_cycles` | Circular dependency detection |
250
- | `archguard_analyze` | Refresh query artifacts in the current session |
288
+ | `archguard_analyze` | Refresh query artifacts; pass `includeTests: true` to include test analysis |
289
+
290
+ Test analysis (requires `archguard_analyze(includeTests: true)` first):
291
+
292
+ | Tool | Purpose |
293
+ |------|---------|
294
+ | `archguard_detect_test_patterns` | Detect test frameworks and return suggested pattern config — call this first |
295
+ | `archguard_get_test_metrics` | Summary: file counts, entity coverage ratio, assertion density, issue counts |
296
+ | `archguard_get_test_issues` | Per-file issues: `zero_assertion`, `orphan_test`, `assertion_poverty`, `skip_accumulation` |
297
+ | `archguard_get_entity_coverage` | Per-entity coverage map with confidence scores |
298
+
299
+ Git history analysis:
300
+
301
+ | Tool | Purpose |
302
+ |------|---------|
303
+ | `archguard_analyze_git` | Index git history for change-based queries |
304
+ | `archguard_get_change_context` | Commits and changed files for an entity |
305
+ | `archguard_get_cochange` | Files that frequently change together |
306
+ | `archguard_get_change_risk` | Change risk score based on churn and coupling |
307
+ | `archguard_get_ownership` | Author ownership breakdown per file or entity |
251
308
 
252
309
  See [MCP Usage Guide](docs/user-guide/mcp-usage.md) for setup, tool reference, and usage patterns.
253
310
 
@@ -271,12 +328,14 @@ archguard cache path # Show cache directory
271
328
 
272
329
  ## Language Support
273
330
 
274
- | Language | Status | Parser | Features |
275
- |------------|--------|---------------------------|----------------------------------------------------|
276
- | TypeScript | Stable | ts-morph (AST) | Classes, interfaces, enums, dependencies, path aliases |
277
- | Go | Stable | tree-sitter + gopls | Structs, interfaces, goroutines, Architecture Atlas |
278
- | Java | Beta | tree-sitter | Classes, interfaces, Maven/Gradle deps |
279
- | Python | Beta | tree-sitter | Classes, functions, pip/Poetry deps |
331
+ | Language | Status | Parser | Features |
332
+ |----------------|--------|---------------------------|----------------------------------------------------|
333
+ | TypeScript | Stable | ts-morph (AST) | Classes, interfaces, enums, dependencies, path aliases |
334
+ | Go | Stable | tree-sitter + gopls | Structs, interfaces, goroutines, Architecture Atlas |
335
+ | Java | Beta | tree-sitter | Classes, interfaces, Maven/Gradle deps |
336
+ | Python | Beta | tree-sitter | Classes, functions, pip/Poetry deps |
337
+ | C++ | Beta | tree-sitter | Structs, classes, inheritance, CMake deps |
338
+ | Kotlin/Android | Beta | tree-sitter | Classes, interfaces, top-level functions, `build.gradle.kts` deps, `settings.gradle.kts` multi-module planning, static test analysis |
280
339
 
281
340
  ### Go Architecture Atlas
282
341
 
@@ -380,8 +439,34 @@ archguard analyze --diagrams class method
380
439
  | `cache.enabled` | boolean | `true` | Enable file-based caching |
381
440
  | `mermaid.theme` | string | `default` | Diagram theme |
382
441
  | `mermaid.transparentBackground` | boolean | `true` | Transparent PNG background |
383
- | `cli.command` | string | `claude` | Claude CLI executable |
384
- | `cli.timeout` | number | `60000` | Claude CLI timeout (ms) |
442
+ | `projectSemantics` | object | | Skill-authored project knowledge consumed during analysis |
443
+
444
+ ## Skill-Authored Project Semantics
445
+
446
+ ArchGuard does not discover project semantics at runtime. Skills or users write project knowledge, and ArchGuard loads, validates, merges, and consumes it during analysis.
447
+
448
+ Authoritative locations and priority:
449
+
450
+ 1. `archguard.config.json.projectSemantics`
451
+ 2. `.archguard/project-semantics.json`
452
+ 3. built-in defaults
453
+
454
+ The sidecar file uses the same shape as `archguard.config.json.projectSemantics`.
455
+
456
+ ```json
457
+ {
458
+ "additionalTestPatterns": ["tests/**/*.ts"],
459
+ "customAssertionPatterns": ["expect[A-Z]\\w+"],
460
+ "architecturalLayers": {
461
+ "src/analysis": "analysis",
462
+ "src/cli": "cli",
463
+ "src/rendering": "rendering"
464
+ },
465
+ "suggestedDepth": 2
466
+ }
467
+ ```
468
+
469
+ If either the config `projectSemantics` block or `.archguard/project-semantics.json` is malformed, ArchGuard fails fast during configuration load or analysis startup instead of silently ignoring the knowledge.
385
470
 
386
471
  ## Output Formats
387
472
 
@@ -485,7 +570,9 @@ archguard/
485
570
  │ │ ├── golang/ # Stable (tree-sitter + gopls + Atlas)
486
571
  │ │ │ └── atlas/ # package, capability, goroutine, flow builders
487
572
  │ │ ├── java/ # Beta
488
- │ │ └── python/ # Beta
573
+ │ │ ├── python/ # Beta
574
+ │ │ ├── cpp/ # Beta (tree-sitter + CMake)
575
+ │ │ └── kotlin/ # Beta (tree-sitter + build.gradle.kts)
489
576
  │ └── types/ # Core types (config, ArchJSON, extensions)
490
577
  ├── tests/
491
578
  │ ├── unit/ # Unit tests
@@ -564,11 +651,11 @@ npm run build
564
651
  # Analyze ArchGuard itself
565
652
  node dist/cli/index.js analyze -v
566
653
 
567
- # Package-level overview
568
- node dist/cli/index.js analyze -l package -n overview
654
+ # Package-level overview only
655
+ node dist/cli/index.js analyze --diagrams package
569
656
 
570
657
  # Method-level detail for a module
571
- node dist/cli/index.js analyze -s ./src/cli -l method -n cli-module
658
+ node dist/cli/index.js analyze -s ./src/cli --diagrams method
572
659
  ```
573
660
 
574
661
  ## Technology Stack
@@ -0,0 +1,11 @@
1
+ import type { PackageGraph, PackageNode } from '../types/extensions/go-atlas.js';
2
+ export interface EnrichedPackageNode extends PackageNode {
3
+ fanIn: number;
4
+ fanOut: number;
5
+ }
6
+ export declare function computePackageFanMetrics(graph: PackageGraph): {
7
+ fanIn: Map<string, number>;
8
+ fanOut: Map<string, number>;
9
+ };
10
+ export declare function enrichPackageNodes(nodes: PackageNode[], fanIn: Map<string, number>, fanOut: Map<string, number>): EnrichedPackageNode[];
11
+ //# sourceMappingURL=atlas-metrics-analysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atlas-metrics-analysis.d.ts","sourceRoot":"","sources":["../../src/analysis/atlas-metrics-analysis.ts"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,MAAM,gCAAgC,CAAC;AAEhF,MAAM,WAAW,mBAAoB,SAAQ,WAAW;IACtD,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;CAChB;AAQD,wBAAgB,wBAAwB,CAAC,KAAK,EAAE,YAAY,GAAG;IAC7D,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC3B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;CAC7B,CAUA;AAMD,wBAAgB,kBAAkB,CAChC,KAAK,EAAE,WAAW,EAAE,EACpB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,EAC1B,MAAM,EAAE,GAAG,CAAC,MAAM,EAAE,MAAM,CAAC,GAC1B,mBAAmB,EAAE,CAMvB"}
@@ -0,0 +1,17 @@
1
+ export function computePackageFanMetrics(graph) {
2
+ const fanIn = new Map();
3
+ const fanOut = new Map();
4
+ for (const edge of graph.edges) {
5
+ fanIn.set(edge.target, (fanIn.get(edge.target) ?? 0) + 1);
6
+ fanOut.set(edge.source, (fanOut.get(edge.source) ?? 0) + 1);
7
+ }
8
+ return { fanIn, fanOut };
9
+ }
10
+ export function enrichPackageNodes(nodes, fanIn, fanOut) {
11
+ return nodes.map((node) => ({
12
+ ...node,
13
+ fanIn: fanIn.get(node.id) ?? 0,
14
+ fanOut: fanOut.get(node.id) ?? 0,
15
+ }));
16
+ }
17
+ //# sourceMappingURL=atlas-metrics-analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"atlas-metrics-analysis.js","sourceRoot":"","sources":["../../src/analysis/atlas-metrics-analysis.ts"],"names":[],"mappings":"AAkBA,MAAM,UAAU,wBAAwB,CAAC,KAAmB;IAI1D,MAAM,KAAK,GAAG,IAAI,GAAG,EAAkB,CAAC;IACxC,MAAM,MAAM,GAAG,IAAI,GAAG,EAAkB,CAAC;IAEzC,KAAK,MAAM,IAAI,IAAI,KAAK,CAAC,KAAK,EAAE,CAAC;QAC/B,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;QAC1D,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,EAAE,CAAC,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;IAC9D,CAAC;IAED,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,CAAC;AAC3B,CAAC;AAMD,MAAM,UAAU,kBAAkB,CAChC,KAAoB,EACpB,KAA0B,EAC1B,MAA2B;IAE3B,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;QAC1B,GAAG,IAAI;QACP,KAAK,EAAE,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;QAC9B,MAAM,EAAE,MAAM,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC,IAAI,CAAC;KACjC,CAAC,CAAC,CAAC;AACN,CAAC"}
@@ -0,0 +1,4 @@
1
+ import type { DependencyConstraintRule, RuleResult } from './rule-types.js';
2
+ import type { Relation } from '../../types/index.js';
3
+ export declare function checkDependencyConstraint(rule: DependencyConstraintRule, relations: Relation[]): RuleResult;
4
+ //# sourceMappingURL=dependency-checker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-checker.d.ts","sourceRoot":"","sources":["../../../src/analysis/fitness/dependency-checker.ts"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,wBAAwB,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAC5E,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,wBAAgB,yBAAyB,CACvC,IAAI,EAAE,wBAAwB,EAC9B,SAAS,EAAE,QAAQ,EAAE,GACpB,UAAU,CAaZ"}
@@ -0,0 +1,16 @@
1
+ import micromatch from 'micromatch';
2
+ export function checkDependencyConstraint(rule, relations) {
3
+ for (const relation of relations) {
4
+ const sourceMatches = micromatch.isMatch(relation.source, rule.from);
5
+ const targetMatches = micromatch.isMatch(relation.target, rule.to);
6
+ if (sourceMatches && targetMatches) {
7
+ return {
8
+ rule,
9
+ passed: false,
10
+ detail: `Forbidden dependency: ${relation.source} → ${relation.target}. ${rule.message}`,
11
+ };
12
+ }
13
+ }
14
+ return { rule, passed: true };
15
+ }
16
+ //# sourceMappingURL=dependency-checker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-checker.js","sourceRoot":"","sources":["../../../src/analysis/fitness/dependency-checker.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,YAAY,CAAC;AAIpC,MAAM,UAAU,yBAAyB,CACvC,IAA8B,EAC9B,SAAqB;IAErB,KAAK,MAAM,QAAQ,IAAI,SAAS,EAAE,CAAC;QACjC,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC;QACrE,MAAM,aAAa,GAAG,UAAU,CAAC,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,CAAC,CAAC;QACnE,IAAI,aAAa,IAAI,aAAa,EAAE,CAAC;YACnC,OAAO;gBACL,IAAI;gBACJ,MAAM,EAAE,KAAK;gBACb,MAAM,EAAE,yBAAyB,QAAQ,CAAC,MAAM,MAAM,QAAQ,CAAC,MAAM,KAAK,IAAI,CAAC,OAAO,EAAE;aACzF,CAAC;QACJ,CAAC;IACH,CAAC;IACD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,CAAC;AAChC,CAAC"}
@@ -0,0 +1,6 @@
1
+ import type { MetricThresholdRule, FitnessRule, RuleResult } from './rule-types.js';
2
+ import type { MetricVector } from '../../types/metric-vector.js';
3
+ import type { Relation } from '../../types/index.js';
4
+ export declare function evaluateMetricRule(rule: MetricThresholdRule, vector: MetricVector): RuleResult;
5
+ export declare function evaluateAllRules(rules: FitnessRule[], vector: MetricVector, relations: Relation[]): RuleResult[];
6
+ //# sourceMappingURL=rule-evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-evaluator.d.ts","sourceRoot":"","sources":["../../../src/analysis/fitness/rule-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,mBAAmB,EAAE,WAAW,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEpF,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAmCjD,wBAAgB,kBAAkB,CAAC,IAAI,EAAE,mBAAmB,EAAE,MAAM,EAAE,YAAY,GAAG,UAAU,CAsB9F;AAED,wBAAgB,gBAAgB,CAC9B,KAAK,EAAE,WAAW,EAAE,EACpB,MAAM,EAAE,YAAY,EACpB,SAAS,EAAE,QAAQ,EAAE,GACpB,UAAU,EAAE,CAUd"}
@@ -0,0 +1,64 @@
1
+ import { evaluateGimLossRule } from '../gim/gim-loss-evaluator.js';
2
+ import { checkDependencyConstraint } from './dependency-checker.js';
3
+ const KNOWN_METRIC_KEYS = new Set([
4
+ 'schemaVersion',
5
+ 'totalEntities',
6
+ 'totalRelations',
7
+ 'inferredRelationRatio',
8
+ 'sccCount',
9
+ 'maxInDegree',
10
+ 'maxOutDegree',
11
+ 'maxPackageSize',
12
+ 'giniInDegree',
13
+ 'giniPackageSize',
14
+ 'packageCount',
15
+ 'entityCoverageRatio',
16
+ ]);
17
+ function compare(actual, op, threshold) {
18
+ switch (op) {
19
+ case '<':
20
+ return actual < threshold;
21
+ case '<=':
22
+ return actual <= threshold;
23
+ case '>':
24
+ return actual > threshold;
25
+ case '>=':
26
+ return actual >= threshold;
27
+ case '==':
28
+ return actual === threshold;
29
+ case '!=':
30
+ return actual !== threshold;
31
+ }
32
+ }
33
+ export function evaluateMetricRule(rule, vector) {
34
+ if (!KNOWN_METRIC_KEYS.has(rule.metric)) {
35
+ return {
36
+ rule,
37
+ passed: false,
38
+ detail: `Unknown metric: '${rule.metric}'`,
39
+ };
40
+ }
41
+ const raw = vector[rule.metric];
42
+ if (raw === null || raw === undefined) {
43
+ return {
44
+ rule,
45
+ passed: false,
46
+ detail: `Metric '${rule.metric}' is not available (did you run with --include-tests?)`,
47
+ };
48
+ }
49
+ const actual = raw;
50
+ const passed = compare(actual, rule.op, rule.value);
51
+ return { rule, passed, actual };
52
+ }
53
+ export function evaluateAllRules(rules, vector, relations) {
54
+ return rules.map((rule) => {
55
+ if (rule.type === 'no-dependency') {
56
+ return checkDependencyConstraint(rule, relations);
57
+ }
58
+ if (rule.type === 'gim-loss') {
59
+ return evaluateGimLossRule(rule, vector);
60
+ }
61
+ return evaluateMetricRule(rule, vector);
62
+ });
63
+ }
64
+ //# sourceMappingURL=rule-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-evaluator.js","sourceRoot":"","sources":["../../../src/analysis/fitness/rule-evaluator.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,mBAAmB,EAAE,MAAM,sCAAsC,CAAC;AAG3E,OAAO,EAAE,yBAAyB,EAAE,MAAM,yBAAyB,CAAC;AAEpE,MAAM,iBAAiB,GAAG,IAAI,GAAG,CAAS;IACxC,eAAe;IACf,eAAe;IACf,gBAAgB;IAChB,uBAAuB;IACvB,UAAU;IACV,aAAa;IACb,cAAc;IACd,gBAAgB;IAChB,cAAc;IACd,iBAAiB;IACjB,cAAc;IACd,qBAAqB;CACtB,CAAC,CAAC;AAEH,SAAS,OAAO,CAAC,MAAc,EAAE,EAA6B,EAAE,SAAiB;IAC/E,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,GAAG;YACN,OAAO,MAAM,GAAG,SAAS,CAAC;QAC5B,KAAK,IAAI;YACP,OAAO,MAAM,IAAI,SAAS,CAAC;QAC7B,KAAK,GAAG;YACN,OAAO,MAAM,GAAG,SAAS,CAAC;QAC5B,KAAK,IAAI;YACP,OAAO,MAAM,IAAI,SAAS,CAAC;QAC7B,KAAK,IAAI;YACP,OAAO,MAAM,KAAK,SAAS,CAAC;QAC9B,KAAK,IAAI;YACP,OAAO,MAAM,KAAK,SAAS,CAAC;IAChC,CAAC;AACH,CAAC;AAED,MAAM,UAAU,kBAAkB,CAAC,IAAyB,EAAE,MAAoB;IAChF,IAAI,CAAC,iBAAiB,CAAC,GAAG,CAAC,IAAI,CAAC,MAAM,CAAC,EAAE,CAAC;QACxC,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,oBAAoB,IAAI,CAAC,MAAM,GAAG;SAC3C,CAAC;IACJ,CAAC;IAED,MAAM,GAAG,GAAI,MAA6C,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;IAExE,IAAI,GAAG,KAAK,IAAI,IAAI,GAAG,KAAK,SAAS,EAAE,CAAC;QACtC,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,WAAW,IAAI,CAAC,MAAM,wDAAwD;SACvF,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,GAAa,CAAC;IAC7B,MAAM,MAAM,GAAG,OAAO,CAAC,MAAM,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACpD,OAAO,EAAE,IAAI,EAAE,MAAM,EAAE,MAAM,EAAE,CAAC;AAClC,CAAC;AAED,MAAM,UAAU,gBAAgB,CAC9B,KAAoB,EACpB,MAAoB,EACpB,SAAqB;IAErB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE;QACxB,IAAI,IAAI,CAAC,IAAI,KAAK,eAAe,EAAE,CAAC;YAClC,OAAO,yBAAyB,CAAC,IAAI,EAAE,SAAS,CAAC,CAAC;QACpD,CAAC;QACD,IAAI,IAAI,CAAC,IAAI,KAAK,UAAU,EAAE,CAAC;YAC7B,OAAO,mBAAmB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;QAC3C,CAAC;QACD,OAAO,kBAAkB,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IAC1C,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -0,0 +1,34 @@
1
+ export type ComparisonOp = '<' | '<=' | '>' | '>=' | '==' | '!=';
2
+ export interface MetricThresholdRule {
3
+ type?: 'metric';
4
+ metric: string;
5
+ op: ComparisonOp;
6
+ value: number;
7
+ message: string;
8
+ }
9
+ export interface DependencyConstraintRule {
10
+ type: 'no-dependency';
11
+ from: string;
12
+ to: string;
13
+ message: string;
14
+ }
15
+ export type GimLossType = 'feasibility' | 'consistency' | 'description-length' | 'generation-alignment';
16
+ export interface GimLossRule {
17
+ type: 'gim-loss';
18
+ loss: GimLossType;
19
+ op: ComparisonOp;
20
+ value: number;
21
+ message: string;
22
+ }
23
+ export type FitnessRule = MetricThresholdRule | DependencyConstraintRule | GimLossRule;
24
+ export interface FitnessConfig {
25
+ rules: FitnessRule[];
26
+ failOnViolation: boolean;
27
+ }
28
+ export interface RuleResult {
29
+ rule: FitnessRule;
30
+ passed: boolean;
31
+ actual?: number | string;
32
+ detail?: string;
33
+ }
34
+ //# sourceMappingURL=rule-types.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-types.d.ts","sourceRoot":"","sources":["../../../src/analysis/fitness/rule-types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,YAAY,GAAG,GAAG,GAAG,IAAI,GAAG,GAAG,GAAG,IAAI,GAAG,IAAI,GAAG,IAAI,CAAC;AAEjE,MAAM,WAAW,mBAAmB;IAClC,IAAI,CAAC,EAAE,QAAQ,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,WAAW,wBAAwB;IACvC,IAAI,EAAE,eAAe,CAAC;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,aAAa,GAAG,aAAa,GAAG,oBAAoB,GAAG,sBAAsB,CAAC;AAExG,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,UAAU,CAAC;IACjB,IAAI,EAAE,WAAW,CAAC;IAClB,EAAE,EAAE,YAAY,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,MAAM,CAAC;CACjB;AAED,MAAM,MAAM,WAAW,GAAG,mBAAmB,GAAG,wBAAwB,GAAG,WAAW,CAAC;AAEvF,MAAM,WAAW,aAAa;IAC5B,KAAK,EAAE,WAAW,EAAE,CAAC;IACrB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,WAAW,CAAC;IAClB,MAAM,EAAE,OAAO,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,GAAG,MAAM,CAAC;IACzB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=rule-types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rule-types.js","sourceRoot":"","sources":["../../../src/analysis/fitness/rule-types.ts"],"names":[],"mappings":""}
@@ -0,0 +1,18 @@
1
+ import type { MetricSnapshot } from '../snapshot-store.js';
2
+ export type DirectionType = 'expansion' | 'contraction' | 'stable' | 'insufficient_data';
3
+ export type ConfidenceLevel = 'low' | 'medium';
4
+ export interface DirectionSignal {
5
+ metric: string;
6
+ direction: 'expansion' | 'contraction' | 'neutral';
7
+ delta: number | null;
8
+ percentChange: number | null;
9
+ }
10
+ export interface DirectionHint {
11
+ direction: DirectionType;
12
+ confidence: ConfidenceLevel | null;
13
+ signals: DirectionSignal[];
14
+ caveat: string;
15
+ recommendation: string;
16
+ }
17
+ export declare function computeDirectionHint(snapshots: MetricSnapshot[]): DirectionHint;
18
+ //# sourceMappingURL=direction-hint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direction-hint.d.ts","sourceRoot":"","sources":["../../../src/analysis/gim/direction-hint.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,8BAA8B,CAAC;AAGnE,MAAM,MAAM,aAAa,GAAG,WAAW,GAAG,aAAa,GAAG,QAAQ,GAAG,mBAAmB,CAAC;AACzF,MAAM,MAAM,eAAe,GAAG,KAAK,GAAG,QAAQ,CAAC;AAE/C,MAAM,WAAW,eAAe;IAC9B,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,WAAW,GAAG,aAAa,GAAG,SAAS,CAAC;IACnD,KAAK,EAAE,MAAM,GAAG,IAAI,CAAC;IACrB,aAAa,EAAE,MAAM,GAAG,IAAI,CAAC;CAC9B;AAED,MAAM,WAAW,aAAa;IAC5B,SAAS,EAAE,aAAa,CAAC;IACzB,UAAU,EAAE,eAAe,GAAG,IAAI,CAAC;IACnC,OAAO,EAAE,eAAe,EAAE,CAAC;IAC3B,MAAM,EAAE,MAAM,CAAC;IACf,cAAc,EAAE,MAAM,CAAC;CACxB;AAgCD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,cAAc,EAAE,GAAG,aAAa,CAqD/E"}
@@ -0,0 +1,76 @@
1
+ import { diffSnapshots } from '../snapshot-diff.js';
2
+ const EXPANSION_ON_INCREASE = new Set(['totalEntities', 'totalRelations', 'packageCount', 'sccCount', 'giniInDegree']);
3
+ const THRESHOLD_PCT = 5;
4
+ function signalDirection(metric, percentChange, delta) {
5
+ if (delta === null)
6
+ return 'neutral';
7
+ if (metric === 'sccCount') {
8
+ if (delta > 0)
9
+ return 'expansion';
10
+ if (delta < 0)
11
+ return 'contraction';
12
+ return 'neutral';
13
+ }
14
+ if (percentChange === null || Math.abs(percentChange) < THRESHOLD_PCT)
15
+ return 'neutral';
16
+ const increasing = delta > 0;
17
+ const expansionOnIncrease = EXPANSION_ON_INCREASE.has(metric);
18
+ if (increasing)
19
+ return expansionOnIncrease ? 'expansion' : 'contraction';
20
+ return expansionOnIncrease ? 'contraction' : 'expansion';
21
+ }
22
+ const RECOMMENDATION = {
23
+ expansion: 'System is in expansion phase. Consider scheduling contraction/refactor work to prevent structural debt from accumulating.',
24
+ contraction: 'System is in contraction phase. Good time to stabilize interfaces and consolidate responsibilities.',
25
+ stable: 'System is stable. Monitor key metrics (sccCount, giniInDegree) to catch early phase transitions.',
26
+ insufficient_data: 'Not enough snapshots to determine direction. Run archguard analyze to generate a second snapshot.',
27
+ };
28
+ export function computeDirectionHint(snapshots) {
29
+ const CAVEAT = 'Based on 2-point comparison only. Direction may flip between consecutive snapshots. Treat as a weak signal, not a definitive trend.';
30
+ if (snapshots.length < 2) {
31
+ return {
32
+ direction: 'insufficient_data',
33
+ confidence: null,
34
+ signals: [],
35
+ caveat: CAVEAT,
36
+ recommendation: RECOMMENDATION.insufficient_data,
37
+ };
38
+ }
39
+ const newer = snapshots[0];
40
+ const older = snapshots[1];
41
+ const diff = diffSnapshots(older, newer);
42
+ const trackedMetrics = ['totalEntities', 'totalRelations', 'packageCount', 'sccCount', 'giniInDegree'];
43
+ const signals = trackedMetrics.map((metric) => {
44
+ const entry = diff.entries.find((e) => e.metric === metric);
45
+ const dir = entry
46
+ ? signalDirection(metric, entry.percentChange, entry.delta)
47
+ : 'neutral';
48
+ return {
49
+ metric,
50
+ direction: dir,
51
+ delta: entry?.delta ?? null,
52
+ percentChange: entry?.percentChange ?? null,
53
+ };
54
+ });
55
+ const expansionCount = signals.filter((s) => s.direction === 'expansion').length;
56
+ const contractionCount = signals.filter((s) => s.direction === 'contraction').length;
57
+ let direction;
58
+ if (expansionCount > contractionCount && expansionCount > signals.length / 2) {
59
+ direction = 'expansion';
60
+ }
61
+ else if (contractionCount > expansionCount && contractionCount > signals.length / 2) {
62
+ direction = 'contraction';
63
+ }
64
+ else {
65
+ direction = 'stable';
66
+ }
67
+ const confidence = snapshots.length >= 3 ? 'medium' : 'low';
68
+ return {
69
+ direction,
70
+ confidence,
71
+ signals,
72
+ caveat: CAVEAT,
73
+ recommendation: RECOMMENDATION[direction],
74
+ };
75
+ }
76
+ //# sourceMappingURL=direction-hint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"direction-hint.js","sourceRoot":"","sources":["../../../src/analysis/gim/direction-hint.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ import type { GimLossRule } from '../fitness/rule-types.js';
2
+ import type { RuleResult } from '../fitness/rule-types.js';
3
+ import type { MetricVector } from '../../types/metric-vector.js';
4
+ export interface LossStatus {
5
+ value: number;
6
+ status: 'healthy' | 'warning' | 'info';
7
+ detail: string;
8
+ proxy: true;
9
+ }
10
+ type LossName = GimLossRule['loss'];
11
+ export declare function evaluateGimLossRule(rule: GimLossRule, vector: MetricVector): RuleResult;
12
+ export declare function computeAllLosses(vector: MetricVector): Record<LossName, LossStatus>;
13
+ export {};
14
+ //# sourceMappingURL=gim-loss-evaluator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gim-loss-evaluator.d.ts","sourceRoot":"","sources":["../../../src/analysis/gim/gim-loss-evaluator.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,kCAAkC,CAAC;AACpE,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,kCAAkC,CAAC;AACnE,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAE7D,MAAM,WAAW,UAAU;IACzB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,IAAI,CAAC;CACb;AAED,KAAK,QAAQ,GAAG,WAAW,CAAC,MAAM,CAAC,CAAC;AAmCpC,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,WAAW,EAAE,MAAM,EAAE,YAAY,GAAG,UAAU,CAiBvF;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,YAAY,GAAG,MAAM,CAAC,QAAQ,EAAE,UAAU,CAAC,CAgCnF"}
@@ -0,0 +1,80 @@
1
+ function resolveProxy(loss, vector) {
2
+ switch (loss) {
3
+ case 'feasibility':
4
+ return vector.sccCount;
5
+ case 'consistency':
6
+ return vector.inferredRelationRatio;
7
+ case 'description-length':
8
+ return vector.totalEntities + vector.totalRelations;
9
+ case 'generation-alignment':
10
+ return vector.giniInDegree;
11
+ default:
12
+ return null;
13
+ }
14
+ }
15
+ function compare(actual, op, threshold) {
16
+ switch (op) {
17
+ case '<': return actual < threshold;
18
+ case '<=': return actual <= threshold;
19
+ case '>': return actual > threshold;
20
+ case '>=': return actual >= threshold;
21
+ case '==': return actual === threshold;
22
+ case '!=': return actual !== threshold;
23
+ }
24
+ }
25
+ const PROXY_LABELS = {
26
+ feasibility: 'sccCount (proxy for ℒ_F)',
27
+ consistency: 'inferredRelationRatio (proxy for ℒ_C)',
28
+ 'description-length': 'totalEntities + totalRelations (proxy for ℒ_D)',
29
+ 'generation-alignment': 'giniInDegree (proxy for ℒ_A)',
30
+ };
31
+ export function evaluateGimLossRule(rule, vector) {
32
+ const proxyValue = resolveProxy(rule.loss, vector);
33
+ if (proxyValue === null) {
34
+ return {
35
+ rule,
36
+ passed: false,
37
+ detail: `Unknown GIM loss type: '${rule.loss}'`,
38
+ };
39
+ }
40
+ const passed = compare(proxyValue, rule.op, rule.value);
41
+ return {
42
+ rule,
43
+ passed,
44
+ actual: proxyValue,
45
+ detail: `${PROXY_LABELS[rule.loss]} = ${proxyValue}`,
46
+ };
47
+ }
48
+ export function computeAllLosses(vector) {
49
+ const feasibilityVal = vector.sccCount;
50
+ const consistencyVal = vector.inferredRelationRatio;
51
+ const descLengthVal = vector.totalEntities + vector.totalRelations;
52
+ const alignmentVal = vector.giniInDegree;
53
+ return {
54
+ feasibility: {
55
+ value: feasibilityVal,
56
+ status: feasibilityVal === 0 ? 'healthy' : 'warning',
57
+ detail: `sccCount=${feasibilityVal}. Proxy for structural feasibility loss ℒ_F. Zero cycles = minimum feasibility loss.`,
58
+ proxy: true,
59
+ },
60
+ consistency: {
61
+ value: consistencyVal,
62
+ status: consistencyVal <= 0.3 ? 'healthy' : 'warning',
63
+ detail: `inferredRelationRatio=${consistencyVal.toFixed(3)}. Proxy for consistency loss ℒ_C. High ratio = many unresolved type dependencies.`,
64
+ proxy: true,
65
+ },
66
+ 'description-length': {
67
+ value: descLengthVal,
68
+ status: 'info',
69
+ detail: `totalEntities(${vector.totalEntities}) + totalRelations(${vector.totalRelations}) = ${descLengthVal}. Proxy for description-length loss ℒ_D. Smaller = easier to describe.`,
70
+ proxy: true,
71
+ },
72
+ 'generation-alignment': {
73
+ value: alignmentVal,
74
+ status: alignmentVal <= 0.5 ? 'healthy' : 'warning',
75
+ detail: `giniInDegree=${alignmentVal.toFixed(3)}. Proxy for generation-alignment loss ℒ_A. High gini = few nodes dominate dependency graph.`,
76
+ proxy: true,
77
+ },
78
+ };
79
+ }
80
+ //# sourceMappingURL=gim-loss-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gim-loss-evaluator.js","sourceRoot":"","sources":["../../../src/analysis/gim/gim-loss-evaluator.ts"],"names":[],"mappings":"AAaA,SAAS,YAAY,CAAC,IAAc,EAAE,MAAoB;IACxD,QAAQ,IAAI,EAAE,CAAC;QACb,KAAK,aAAa;YAChB,OAAO,MAAM,CAAC,QAAQ,CAAC;QACzB,KAAK,aAAa;YAChB,OAAO,MAAM,CAAC,qBAAqB,CAAC;QACtC,KAAK,oBAAoB;YACvB,OAAO,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC;QACtD,KAAK,sBAAsB;YACzB,OAAO,MAAM,CAAC,YAAY,CAAC;QAC7B;YACE,OAAO,IAAI,CAAC;IAChB,CAAC;AACH,CAAC;AAED,SAAS,OAAO,CAAC,MAAc,EAAE,EAAqB,EAAE,SAAiB;IACvE,QAAQ,EAAE,EAAE,CAAC;QACX,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,GAAG,SAAS,CAAC;QACpC,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,IAAI,SAAS,CAAC;QACtC,KAAK,GAAG,CAAC,CAAC,OAAO,MAAM,GAAG,SAAS,CAAC;QACpC,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,IAAI,SAAS,CAAC;QACtC,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,KAAK,SAAS,CAAC;QACvC,KAAK,IAAI,CAAC,CAAC,OAAO,MAAM,KAAK,SAAS,CAAC;IACzC,CAAC;AACH,CAAC;AAED,MAAM,YAAY,GAA6B;IAC7C,WAAW,EAAE,0BAA0B;IACvC,WAAW,EAAE,uCAAuC;IACpD,oBAAoB,EAAE,gDAAgD;IACtE,sBAAsB,EAAE,8BAA8B;CACvD,CAAC;AAEF,MAAM,UAAU,mBAAmB,CAAC,IAAiB,EAAE,MAAoB;IACzE,MAAM,UAAU,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,EAAE,MAAM,CAAC,CAAC;IACnD,IAAI,UAAU,KAAK,IAAI,EAAE,CAAC;QACxB,OAAO;YACL,IAAI;YACJ,MAAM,EAAE,KAAK;YACb,MAAM,EAAE,2BAA2B,IAAI,CAAC,IAAI,GAAG;SAChD,CAAC;IACJ,CAAC;IAED,MAAM,MAAM,GAAG,OAAO,CAAC,UAAU,EAAE,IAAI,CAAC,EAAE,EAAE,IAAI,CAAC,KAAK,CAAC,CAAC;IACxD,OAAO;QACL,IAAI;QACJ,MAAM;QACN,MAAM,EAAE,UAAU;QAClB,MAAM,EAAE,GAAG,YAAY,CAAC,IAAI,CAAC,IAAI,CAAC,MAAM,UAAU,EAAE;KACrD,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,gBAAgB,CAAC,MAAoB;IACnD,MAAM,cAAc,GAAG,MAAM,CAAC,QAAQ,CAAC;IACvC,MAAM,cAAc,GAAG,MAAM,CAAC,qBAAqB,CAAC;IACpD,MAAM,aAAa,GAAG,MAAM,CAAC,aAAa,GAAG,MAAM,CAAC,cAAc,CAAC;IACnE,MAAM,YAAY,GAAG,MAAM,CAAC,YAAY,CAAC;IAEzC,OAAO;QACL,WAAW,EAAE;YACX,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,cAAc,KAAK,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACpD,MAAM,EAAE,YAAY,cAAc,sFAAsF;YACxH,KAAK,EAAE,IAAI;SACZ;QACD,WAAW,EAAE;YACX,KAAK,EAAE,cAAc;YACrB,MAAM,EAAE,cAAc,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACrD,MAAM,EAAE,yBAAyB,cAAc,CAAC,OAAO,CAAC,CAAC,CAAC,mFAAmF;YAC7I,KAAK,EAAE,IAAI;SACZ;QACD,oBAAoB,EAAE;YACpB,KAAK,EAAE,aAAa;YACpB,MAAM,EAAE,MAAM;YACd,MAAM,EAAE,iBAAiB,MAAM,CAAC,aAAa,sBAAsB,MAAM,CAAC,cAAc,OAAO,aAAa,wEAAwE;YACpL,KAAK,EAAE,IAAI;SACZ;QACD,sBAAsB,EAAE;YACtB,KAAK,EAAE,YAAY;YACnB,MAAM,EAAE,YAAY,IAAI,GAAG,CAAC,CAAC,CAAC,SAAS,CAAC,CAAC,CAAC,SAAS;YACnD,MAAM,EAAE,gBAAgB,YAAY,CAAC,OAAO,CAAC,CAAC,CAAC,6FAA6F;YAC5I,KAAK,EAAE,IAAI;SACZ;KACF,CAAC;AACJ,CAAC"}