@yalehwang/archguard 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/README.md +537 -0
  2. package/dist/cli/cache/arch-json-disk-cache.d.ts +12 -0
  3. package/dist/cli/cache/arch-json-disk-cache.d.ts.map +1 -0
  4. package/dist/cli/cache/arch-json-disk-cache.js +51 -0
  5. package/dist/cli/cache/arch-json-disk-cache.js.map +1 -0
  6. package/dist/cli/cache-manager.d.ts +28 -0
  7. package/dist/cli/cache-manager.d.ts.map +1 -0
  8. package/dist/cli/cache-manager.js +126 -0
  9. package/dist/cli/cache-manager.js.map +1 -0
  10. package/dist/cli/commands/analyze.d.ts +7 -0
  11. package/dist/cli/commands/analyze.d.ts.map +1 -0
  12. package/dist/cli/commands/analyze.js +212 -0
  13. package/dist/cli/commands/analyze.js.map +1 -0
  14. package/dist/cli/commands/cache.d.ts +3 -0
  15. package/dist/cli/commands/cache.d.ts.map +1 -0
  16. package/dist/cli/commands/cache.js +56 -0
  17. package/dist/cli/commands/cache.js.map +1 -0
  18. package/dist/cli/commands/init.d.ts +3 -0
  19. package/dist/cli/commands/init.d.ts.map +1 -0
  20. package/dist/cli/commands/init.js +34 -0
  21. package/dist/cli/commands/init.js.map +1 -0
  22. package/dist/cli/config-loader.d.ts +701 -0
  23. package/dist/cli/config-loader.d.ts.map +1 -0
  24. package/dist/cli/config-loader.js +259 -0
  25. package/dist/cli/config-loader.js.map +1 -0
  26. package/dist/cli/error-handler.d.ts +15 -0
  27. package/dist/cli/error-handler.d.ts.map +1 -0
  28. package/dist/cli/error-handler.js +127 -0
  29. package/dist/cli/error-handler.js.map +1 -0
  30. package/dist/cli/errors.d.ts +15 -0
  31. package/dist/cli/errors.d.ts.map +1 -0
  32. package/dist/cli/errors.js +31 -0
  33. package/dist/cli/errors.js.map +1 -0
  34. package/dist/cli/index.d.ts +4 -0
  35. package/dist/cli/index.d.ts.map +1 -0
  36. package/dist/cli/index.js +27 -0
  37. package/dist/cli/index.js.map +1 -0
  38. package/dist/cli/processors/diagram-processor.d.ts +61 -0
  39. package/dist/cli/processors/diagram-processor.d.ts.map +1 -0
  40. package/dist/cli/processors/diagram-processor.js +610 -0
  41. package/dist/cli/processors/diagram-processor.js.map +1 -0
  42. package/dist/cli/progress/parallel-progress.d.ts +16 -0
  43. package/dist/cli/progress/parallel-progress.d.ts.map +1 -0
  44. package/dist/cli/progress/parallel-progress.js +49 -0
  45. package/dist/cli/progress/parallel-progress.js.map +1 -0
  46. package/dist/cli/progress.d.ts +36 -0
  47. package/dist/cli/progress.d.ts.map +1 -0
  48. package/dist/cli/progress.js +127 -0
  49. package/dist/cli/progress.js.map +1 -0
  50. package/dist/cli/types.d.ts +37 -0
  51. package/dist/cli/types.d.ts.map +1 -0
  52. package/dist/cli/types.js +2 -0
  53. package/dist/cli/types.js.map +1 -0
  54. package/dist/cli/utils/cpp-project-structure-detector.d.ts +10 -0
  55. package/dist/cli/utils/cpp-project-structure-detector.d.ts.map +1 -0
  56. package/dist/cli/utils/cpp-project-structure-detector.js +99 -0
  57. package/dist/cli/utils/cpp-project-structure-detector.js.map +1 -0
  58. package/dist/cli/utils/diagram-index-generator.d.ts +12 -0
  59. package/dist/cli/utils/diagram-index-generator.d.ts.map +1 -0
  60. package/dist/cli/utils/diagram-index-generator.js +94 -0
  61. package/dist/cli/utils/diagram-index-generator.js.map +1 -0
  62. package/dist/cli/utils/file-discovery-service.d.ts +10 -0
  63. package/dist/cli/utils/file-discovery-service.d.ts.map +1 -0
  64. package/dist/cli/utils/file-discovery-service.js +56 -0
  65. package/dist/cli/utils/file-discovery-service.js.map +1 -0
  66. package/dist/cli/utils/output-path-resolver.d.ts +34 -0
  67. package/dist/cli/utils/output-path-resolver.d.ts.map +1 -0
  68. package/dist/cli/utils/output-path-resolver.js +91 -0
  69. package/dist/cli/utils/output-path-resolver.js.map +1 -0
  70. package/dist/cli/utils/project-structure-detector.d.ts +6 -0
  71. package/dist/cli/utils/project-structure-detector.d.ts.map +1 -0
  72. package/dist/cli/utils/project-structure-detector.js +159 -0
  73. package/dist/cli/utils/project-structure-detector.js.map +1 -0
  74. package/dist/core/interfaces/dependency.d.ts +14 -0
  75. package/dist/core/interfaces/dependency.d.ts.map +1 -0
  76. package/dist/core/interfaces/dependency.js +2 -0
  77. package/dist/core/interfaces/dependency.js.map +1 -0
  78. package/dist/core/interfaces/errors.d.ts +29 -0
  79. package/dist/core/interfaces/errors.d.ts.map +1 -0
  80. package/dist/core/interfaces/errors.js +59 -0
  81. package/dist/core/interfaces/errors.js.map +1 -0
  82. package/dist/core/interfaces/index.d.ts +6 -0
  83. package/dist/core/interfaces/index.d.ts.map +1 -0
  84. package/dist/core/interfaces/index.js +2 -0
  85. package/dist/core/interfaces/index.js.map +1 -0
  86. package/dist/core/interfaces/language-plugin.d.ts +34 -0
  87. package/dist/core/interfaces/language-plugin.d.ts.map +1 -0
  88. package/dist/core/interfaces/language-plugin.js +2 -0
  89. package/dist/core/interfaces/language-plugin.js.map +1 -0
  90. package/dist/core/interfaces/parser.d.ts +15 -0
  91. package/dist/core/interfaces/parser.d.ts.map +1 -0
  92. package/dist/core/interfaces/parser.js +2 -0
  93. package/dist/core/interfaces/parser.js.map +1 -0
  94. package/dist/core/interfaces/validation.d.ts +24 -0
  95. package/dist/core/interfaces/validation.d.ts.map +1 -0
  96. package/dist/core/interfaces/validation.js +2 -0
  97. package/dist/core/interfaces/validation.js.map +1 -0
  98. package/dist/core/plugin-registry.d.ts +19 -0
  99. package/dist/core/plugin-registry.d.ts.map +1 -0
  100. package/dist/core/plugin-registry.js +137 -0
  101. package/dist/core/plugin-registry.js.map +1 -0
  102. package/dist/index.d.ts +4 -0
  103. package/dist/index.d.ts.map +1 -0
  104. package/dist/index.js +4 -0
  105. package/dist/index.js.map +1 -0
  106. package/dist/mermaid/auto-repair.d.ts +23 -0
  107. package/dist/mermaid/auto-repair.d.ts.map +1 -0
  108. package/dist/mermaid/auto-repair.js +197 -0
  109. package/dist/mermaid/auto-repair.js.map +1 -0
  110. package/dist/mermaid/comment-generator.d.ts +10 -0
  111. package/dist/mermaid/comment-generator.d.ts.map +1 -0
  112. package/dist/mermaid/comment-generator.js +213 -0
  113. package/dist/mermaid/comment-generator.js.map +1 -0
  114. package/dist/mermaid/cpp-package-flowchart-generator.d.ts +5 -0
  115. package/dist/mermaid/cpp-package-flowchart-generator.d.ts.map +1 -0
  116. package/dist/mermaid/cpp-package-flowchart-generator.js +33 -0
  117. package/dist/mermaid/cpp-package-flowchart-generator.js.map +1 -0
  118. package/dist/mermaid/diagram-generator.d.ts +31 -0
  119. package/dist/mermaid/diagram-generator.d.ts.map +1 -0
  120. package/dist/mermaid/diagram-generator.js +194 -0
  121. package/dist/mermaid/diagram-generator.js.map +1 -0
  122. package/dist/mermaid/external-dependencies.d.ts +3 -0
  123. package/dist/mermaid/external-dependencies.d.ts.map +1 -0
  124. package/dist/mermaid/external-dependencies.js +38 -0
  125. package/dist/mermaid/external-dependencies.js.map +1 -0
  126. package/dist/mermaid/generator.d.ts +44 -0
  127. package/dist/mermaid/generator.d.ts.map +1 -0
  128. package/dist/mermaid/generator.js +511 -0
  129. package/dist/mermaid/generator.js.map +1 -0
  130. package/dist/mermaid/grouper.d.ts +15 -0
  131. package/dist/mermaid/grouper.d.ts.map +1 -0
  132. package/dist/mermaid/grouper.js +194 -0
  133. package/dist/mermaid/grouper.js.map +1 -0
  134. package/dist/mermaid/index.d.ts +14 -0
  135. package/dist/mermaid/index.d.ts.map +1 -0
  136. package/dist/mermaid/index.js +13 -0
  137. package/dist/mermaid/index.js.map +1 -0
  138. package/dist/mermaid/progress.d.ts +15 -0
  139. package/dist/mermaid/progress.d.ts.map +1 -0
  140. package/dist/mermaid/progress.js +8 -0
  141. package/dist/mermaid/progress.js.map +1 -0
  142. package/dist/mermaid/render-worker-pool.d.ts +29 -0
  143. package/dist/mermaid/render-worker-pool.d.ts.map +1 -0
  144. package/dist/mermaid/render-worker-pool.js +73 -0
  145. package/dist/mermaid/render-worker-pool.js.map +1 -0
  146. package/dist/mermaid/render-worker.d.ts +2 -0
  147. package/dist/mermaid/render-worker.d.ts.map +1 -0
  148. package/dist/mermaid/render-worker.js +22 -0
  149. package/dist/mermaid/render-worker.js.map +1 -0
  150. package/dist/mermaid/renderer.d.ts +17 -0
  151. package/dist/mermaid/renderer.d.ts.map +1 -0
  152. package/dist/mermaid/renderer.js +204 -0
  153. package/dist/mermaid/renderer.js.map +1 -0
  154. package/dist/mermaid/ts-module-graph-renderer.d.ts +3 -0
  155. package/dist/mermaid/ts-module-graph-renderer.d.ts.map +1 -0
  156. package/dist/mermaid/ts-module-graph-renderer.js +180 -0
  157. package/dist/mermaid/ts-module-graph-renderer.js.map +1 -0
  158. package/dist/mermaid/types.d.ts +122 -0
  159. package/dist/mermaid/types.d.ts.map +1 -0
  160. package/dist/mermaid/types.js +2 -0
  161. package/dist/mermaid/types.js.map +1 -0
  162. package/dist/mermaid/validation-pipeline.d.ts +29 -0
  163. package/dist/mermaid/validation-pipeline.d.ts.map +1 -0
  164. package/dist/mermaid/validation-pipeline.js +163 -0
  165. package/dist/mermaid/validation-pipeline.js.map +1 -0
  166. package/dist/mermaid/validator-parse.d.ts +11 -0
  167. package/dist/mermaid/validator-parse.d.ts.map +1 -0
  168. package/dist/mermaid/validator-parse.js +130 -0
  169. package/dist/mermaid/validator-parse.js.map +1 -0
  170. package/dist/mermaid/validator-quality.d.ts +17 -0
  171. package/dist/mermaid/validator-quality.d.ts.map +1 -0
  172. package/dist/mermaid/validator-quality.js +187 -0
  173. package/dist/mermaid/validator-quality.js.map +1 -0
  174. package/dist/mermaid/validator-render.d.ts +12 -0
  175. package/dist/mermaid/validator-render.d.ts.map +1 -0
  176. package/dist/mermaid/validator-render.js +98 -0
  177. package/dist/mermaid/validator-render.js.map +1 -0
  178. package/dist/mermaid/validator-structural.d.ts +11 -0
  179. package/dist/mermaid/validator-structural.d.ts.map +1 -0
  180. package/dist/mermaid/validator-structural.js +116 -0
  181. package/dist/mermaid/validator-structural.js.map +1 -0
  182. package/dist/parser/archjson-aggregator.d.ts +11 -0
  183. package/dist/parser/archjson-aggregator.d.ts.map +1 -0
  184. package/dist/parser/archjson-aggregator.js +113 -0
  185. package/dist/parser/archjson-aggregator.js.map +1 -0
  186. package/dist/parser/base-extractor.d.ts +6 -0
  187. package/dist/parser/base-extractor.d.ts.map +1 -0
  188. package/dist/parser/base-extractor.js +13 -0
  189. package/dist/parser/base-extractor.js.map +1 -0
  190. package/dist/parser/class-extractor.d.ts +17 -0
  191. package/dist/parser/class-extractor.d.ts.map +1 -0
  192. package/dist/parser/class-extractor.js +144 -0
  193. package/dist/parser/class-extractor.js.map +1 -0
  194. package/dist/parser/enum-extractor.d.ts +9 -0
  195. package/dist/parser/enum-extractor.d.ts.map +1 -0
  196. package/dist/parser/enum-extractor.js +45 -0
  197. package/dist/parser/enum-extractor.js.map +1 -0
  198. package/dist/parser/errors.d.ts +7 -0
  199. package/dist/parser/errors.d.ts.map +1 -0
  200. package/dist/parser/errors.js +14 -0
  201. package/dist/parser/errors.js.map +1 -0
  202. package/dist/parser/function-extractor.d.ts +7 -0
  203. package/dist/parser/function-extractor.d.ts.map +1 -0
  204. package/dist/parser/function-extractor.js +59 -0
  205. package/dist/parser/function-extractor.js.map +1 -0
  206. package/dist/parser/index.d.ts +10 -0
  207. package/dist/parser/index.d.ts.map +1 -0
  208. package/dist/parser/index.js +9 -0
  209. package/dist/parser/index.js.map +1 -0
  210. package/dist/parser/interface-extractor.d.ts +14 -0
  211. package/dist/parser/interface-extractor.d.ts.map +1 -0
  212. package/dist/parser/interface-extractor.js +90 -0
  213. package/dist/parser/interface-extractor.js.map +1 -0
  214. package/dist/parser/metrics-calculator.d.ts +9 -0
  215. package/dist/parser/metrics-calculator.d.ts.map +1 -0
  216. package/dist/parser/metrics-calculator.js +84 -0
  217. package/dist/parser/metrics-calculator.js.map +1 -0
  218. package/dist/parser/parallel-parser.d.ts +38 -0
  219. package/dist/parser/parallel-parser.d.ts.map +1 -0
  220. package/dist/parser/parallel-parser.js +170 -0
  221. package/dist/parser/parallel-parser.js.map +1 -0
  222. package/dist/parser/parse-cache.d.ts +8 -0
  223. package/dist/parser/parse-cache.d.ts.map +1 -0
  224. package/dist/parser/parse-cache.js +25 -0
  225. package/dist/parser/parse-cache.js.map +1 -0
  226. package/dist/parser/relation-extractor.d.ts +14 -0
  227. package/dist/parser/relation-extractor.d.ts.map +1 -0
  228. package/dist/parser/relation-extractor.js +203 -0
  229. package/dist/parser/relation-extractor.js.map +1 -0
  230. package/dist/parser/typescript-parser.d.ts +19 -0
  231. package/dist/parser/typescript-parser.d.ts.map +1 -0
  232. package/dist/parser/typescript-parser.js +182 -0
  233. package/dist/parser/typescript-parser.js.map +1 -0
  234. package/dist/plugins/cpp/archjson-mapper.d.ts +13 -0
  235. package/dist/plugins/cpp/archjson-mapper.d.ts.map +1 -0
  236. package/dist/plugins/cpp/archjson-mapper.js +180 -0
  237. package/dist/plugins/cpp/archjson-mapper.js.map +1 -0
  238. package/dist/plugins/cpp/builders/class-builder.d.ts +15 -0
  239. package/dist/plugins/cpp/builders/class-builder.d.ts.map +1 -0
  240. package/dist/plugins/cpp/builders/class-builder.js +102 -0
  241. package/dist/plugins/cpp/builders/class-builder.js.map +1 -0
  242. package/dist/plugins/cpp/builders/header-merger.d.ts +8 -0
  243. package/dist/plugins/cpp/builders/header-merger.d.ts.map +1 -0
  244. package/dist/plugins/cpp/builders/header-merger.js +65 -0
  245. package/dist/plugins/cpp/builders/header-merger.js.map +1 -0
  246. package/dist/plugins/cpp/cpp-type-extractor.d.ts +13 -0
  247. package/dist/plugins/cpp/cpp-type-extractor.d.ts.map +1 -0
  248. package/dist/plugins/cpp/cpp-type-extractor.js +153 -0
  249. package/dist/plugins/cpp/cpp-type-extractor.js.map +1 -0
  250. package/dist/plugins/cpp/dependency-extractor.d.ts +5 -0
  251. package/dist/plugins/cpp/dependency-extractor.d.ts.map +1 -0
  252. package/dist/plugins/cpp/dependency-extractor.js +28 -0
  253. package/dist/plugins/cpp/dependency-extractor.js.map +1 -0
  254. package/dist/plugins/cpp/index.d.ts +21 -0
  255. package/dist/plugins/cpp/index.d.ts.map +1 -0
  256. package/dist/plugins/cpp/index.js +113 -0
  257. package/dist/plugins/cpp/index.js.map +1 -0
  258. package/dist/plugins/cpp/tree-sitter-bridge.d.ts +20 -0
  259. package/dist/plugins/cpp/tree-sitter-bridge.d.ts.map +1 -0
  260. package/dist/plugins/cpp/tree-sitter-bridge.js +258 -0
  261. package/dist/plugins/cpp/tree-sitter-bridge.js.map +1 -0
  262. package/dist/plugins/cpp/types.d.ts +75 -0
  263. package/dist/plugins/cpp/types.d.ts.map +1 -0
  264. package/dist/plugins/cpp/types.js +2 -0
  265. package/dist/plugins/cpp/types.js.map +1 -0
  266. package/dist/plugins/golang/archjson-mapper.d.ts +10 -0
  267. package/dist/plugins/golang/archjson-mapper.d.ts.map +1 -0
  268. package/dist/plugins/golang/archjson-mapper.js +121 -0
  269. package/dist/plugins/golang/archjson-mapper.js.map +1 -0
  270. package/dist/plugins/golang/atlas/behavior-analyzer.d.ts +16 -0
  271. package/dist/plugins/golang/atlas/behavior-analyzer.d.ts.map +1 -0
  272. package/dist/plugins/golang/atlas/behavior-analyzer.js +32 -0
  273. package/dist/plugins/golang/atlas/behavior-analyzer.js.map +1 -0
  274. package/dist/plugins/golang/atlas/builders/capability-graph-builder.d.ts +12 -0
  275. package/dist/plugins/golang/atlas/builders/capability-graph-builder.d.ts.map +1 -0
  276. package/dist/plugins/golang/atlas/builders/capability-graph-builder.js +219 -0
  277. package/dist/plugins/golang/atlas/builders/capability-graph-builder.js.map +1 -0
  278. package/dist/plugins/golang/atlas/builders/flow-graph-builder.d.ts +18 -0
  279. package/dist/plugins/golang/atlas/builders/flow-graph-builder.d.ts.map +1 -0
  280. package/dist/plugins/golang/atlas/builders/flow-graph-builder.js +300 -0
  281. package/dist/plugins/golang/atlas/builders/flow-graph-builder.js.map +1 -0
  282. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.d.ts +15 -0
  283. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.d.ts.map +1 -0
  284. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.js +254 -0
  285. package/dist/plugins/golang/atlas/builders/goroutine-topology-builder.js.map +1 -0
  286. package/dist/plugins/golang/atlas/builders/i-atlas-builder.d.ts +5 -0
  287. package/dist/plugins/golang/atlas/builders/i-atlas-builder.d.ts.map +1 -0
  288. package/dist/plugins/golang/atlas/builders/i-atlas-builder.js +2 -0
  289. package/dist/plugins/golang/atlas/builders/i-atlas-builder.js.map +1 -0
  290. package/dist/plugins/golang/atlas/builders/index.d.ts +6 -0
  291. package/dist/plugins/golang/atlas/builders/index.d.ts.map +1 -0
  292. package/dist/plugins/golang/atlas/builders/index.js +5 -0
  293. package/dist/plugins/golang/atlas/builders/index.js.map +1 -0
  294. package/dist/plugins/golang/atlas/builders/package-graph-builder.d.ts +14 -0
  295. package/dist/plugins/golang/atlas/builders/package-graph-builder.d.ts.map +1 -0
  296. package/dist/plugins/golang/atlas/builders/package-graph-builder.js +115 -0
  297. package/dist/plugins/golang/atlas/builders/package-graph-builder.js.map +1 -0
  298. package/dist/plugins/golang/atlas/framework-detector.d.ts +11 -0
  299. package/dist/plugins/golang/atlas/framework-detector.d.ts.map +1 -0
  300. package/dist/plugins/golang/atlas/framework-detector.js +82 -0
  301. package/dist/plugins/golang/atlas/framework-detector.js.map +1 -0
  302. package/dist/plugins/golang/atlas/go-mod-resolver.d.ts +21 -0
  303. package/dist/plugins/golang/atlas/go-mod-resolver.d.ts.map +1 -0
  304. package/dist/plugins/golang/atlas/go-mod-resolver.js +90 -0
  305. package/dist/plugins/golang/atlas/go-mod-resolver.js.map +1 -0
  306. package/dist/plugins/golang/atlas/index.d.ts +28 -0
  307. package/dist/plugins/golang/atlas/index.d.ts.map +1 -0
  308. package/dist/plugins/golang/atlas/index.js +166 -0
  309. package/dist/plugins/golang/atlas/index.js.map +1 -0
  310. package/dist/plugins/golang/atlas/renderers/atlas-renderer.d.ts +7 -0
  311. package/dist/plugins/golang/atlas/renderers/atlas-renderer.d.ts.map +1 -0
  312. package/dist/plugins/golang/atlas/renderers/atlas-renderer.js +62 -0
  313. package/dist/plugins/golang/atlas/renderers/atlas-renderer.js.map +1 -0
  314. package/dist/plugins/golang/atlas/renderers/mermaid-templates.d.ts +24 -0
  315. package/dist/plugins/golang/atlas/renderers/mermaid-templates.d.ts.map +1 -0
  316. package/dist/plugins/golang/atlas/renderers/mermaid-templates.js +688 -0
  317. package/dist/plugins/golang/atlas/renderers/mermaid-templates.js.map +1 -0
  318. package/dist/plugins/golang/atlas/types.d.ts +63 -0
  319. package/dist/plugins/golang/atlas/types.d.ts.map +1 -0
  320. package/dist/plugins/golang/atlas/types.js +2 -0
  321. package/dist/plugins/golang/atlas/types.js.map +1 -0
  322. package/dist/plugins/golang/dependency-extractor.d.ts +7 -0
  323. package/dist/plugins/golang/dependency-extractor.d.ts.map +1 -0
  324. package/dist/plugins/golang/dependency-extractor.js +100 -0
  325. package/dist/plugins/golang/dependency-extractor.js.map +1 -0
  326. package/dist/plugins/golang/gopls-client.d.ts +38 -0
  327. package/dist/plugins/golang/gopls-client.d.ts.map +1 -0
  328. package/dist/plugins/golang/gopls-client.js +354 -0
  329. package/dist/plugins/golang/gopls-client.js.map +1 -0
  330. package/dist/plugins/golang/index.d.ts +29 -0
  331. package/dist/plugins/golang/index.d.ts.map +1 -0
  332. package/dist/plugins/golang/index.js +242 -0
  333. package/dist/plugins/golang/index.js.map +1 -0
  334. package/dist/plugins/golang/interface-matcher.d.ts +14 -0
  335. package/dist/plugins/golang/interface-matcher.d.ts.map +1 -0
  336. package/dist/plugins/golang/interface-matcher.js +235 -0
  337. package/dist/plugins/golang/interface-matcher.js.map +1 -0
  338. package/dist/plugins/golang/tree-sitter-bridge.d.ts +32 -0
  339. package/dist/plugins/golang/tree-sitter-bridge.d.ts.map +1 -0
  340. package/dist/plugins/golang/tree-sitter-bridge.js +579 -0
  341. package/dist/plugins/golang/tree-sitter-bridge.js.map +1 -0
  342. package/dist/plugins/golang/types.d.ts +119 -0
  343. package/dist/plugins/golang/types.d.ts.map +1 -0
  344. package/dist/plugins/golang/types.js +2 -0
  345. package/dist/plugins/golang/types.js.map +1 -0
  346. package/dist/plugins/java/archjson-mapper.d.ts +15 -0
  347. package/dist/plugins/java/archjson-mapper.d.ts.map +1 -0
  348. package/dist/plugins/java/archjson-mapper.js +273 -0
  349. package/dist/plugins/java/archjson-mapper.js.map +1 -0
  350. package/dist/plugins/java/dependency-extractor.d.ts +9 -0
  351. package/dist/plugins/java/dependency-extractor.d.ts.map +1 -0
  352. package/dist/plugins/java/dependency-extractor.js +99 -0
  353. package/dist/plugins/java/dependency-extractor.js.map +1 -0
  354. package/dist/plugins/java/index.d.ts +21 -0
  355. package/dist/plugins/java/index.d.ts.map +1 -0
  356. package/dist/plugins/java/index.js +167 -0
  357. package/dist/plugins/java/index.js.map +1 -0
  358. package/dist/plugins/java/tree-sitter-bridge.d.ts +19 -0
  359. package/dist/plugins/java/tree-sitter-bridge.d.ts.map +1 -0
  360. package/dist/plugins/java/tree-sitter-bridge.js +334 -0
  361. package/dist/plugins/java/tree-sitter-bridge.js.map +1 -0
  362. package/dist/plugins/java/types.d.ts +81 -0
  363. package/dist/plugins/java/types.d.ts.map +1 -0
  364. package/dist/plugins/java/types.js +2 -0
  365. package/dist/plugins/java/types.js.map +1 -0
  366. package/dist/plugins/python/archjson-mapper.d.ts +19 -0
  367. package/dist/plugins/python/archjson-mapper.d.ts.map +1 -0
  368. package/dist/plugins/python/archjson-mapper.js +170 -0
  369. package/dist/plugins/python/archjson-mapper.js.map +1 -0
  370. package/dist/plugins/python/dependency-extractor.d.ts +11 -0
  371. package/dist/plugins/python/dependency-extractor.d.ts.map +1 -0
  372. package/dist/plugins/python/dependency-extractor.js +186 -0
  373. package/dist/plugins/python/dependency-extractor.js.map +1 -0
  374. package/dist/plugins/python/index.d.ts +21 -0
  375. package/dist/plugins/python/index.d.ts.map +1 -0
  376. package/dist/plugins/python/index.js +142 -0
  377. package/dist/plugins/python/index.js.map +1 -0
  378. package/dist/plugins/python/tree-sitter-bridge.d.ts +16 -0
  379. package/dist/plugins/python/tree-sitter-bridge.d.ts.map +1 -0
  380. package/dist/plugins/python/tree-sitter-bridge.js +352 -0
  381. package/dist/plugins/python/tree-sitter-bridge.js.map +1 -0
  382. package/dist/plugins/python/types.d.ts +86 -0
  383. package/dist/plugins/python/types.d.ts.map +1 -0
  384. package/dist/plugins/python/types.js +2 -0
  385. package/dist/plugins/python/types.js.map +1 -0
  386. package/dist/plugins/shared/mapper-utils.d.ts +4 -0
  387. package/dist/plugins/shared/mapper-utils.d.ts.map +1 -0
  388. package/dist/plugins/shared/mapper-utils.js +12 -0
  389. package/dist/plugins/shared/mapper-utils.js.map +1 -0
  390. package/dist/plugins/typescript/builders/module-graph-builder.d.ts +8 -0
  391. package/dist/plugins/typescript/builders/module-graph-builder.d.ts.map +1 -0
  392. package/dist/plugins/typescript/builders/module-graph-builder.js +175 -0
  393. package/dist/plugins/typescript/builders/module-graph-builder.js.map +1 -0
  394. package/dist/plugins/typescript/index.d.ts +26 -0
  395. package/dist/plugins/typescript/index.d.ts.map +1 -0
  396. package/dist/plugins/typescript/index.js +232 -0
  397. package/dist/plugins/typescript/index.js.map +1 -0
  398. package/dist/plugins/typescript/typescript-analyzer.d.ts +8 -0
  399. package/dist/plugins/typescript/typescript-analyzer.d.ts.map +1 -0
  400. package/dist/plugins/typescript/typescript-analyzer.js +13 -0
  401. package/dist/plugins/typescript/typescript-analyzer.js.map +1 -0
  402. package/dist/scripts/migrate-to-mermaid.js +214 -0
  403. package/dist/types/config.d.ts +140 -0
  404. package/dist/types/config.d.ts.map +1 -0
  405. package/dist/types/config.js +6 -0
  406. package/dist/types/config.js.map +1 -0
  407. package/dist/types/extensions.d.ts +224 -0
  408. package/dist/types/extensions.d.ts.map +1 -0
  409. package/dist/types/extensions.js +3 -0
  410. package/dist/types/extensions.js.map +1 -0
  411. package/dist/types/index.d.ts +89 -0
  412. package/dist/types/index.d.ts.map +1 -0
  413. package/dist/types/index.js +3 -0
  414. package/dist/types/index.js.map +1 -0
  415. package/dist/utils/cli-detector.d.ts +8 -0
  416. package/dist/utils/cli-detector.d.ts.map +1 -0
  417. package/dist/utils/cli-detector.js +38 -0
  418. package/dist/utils/cli-detector.js.map +1 -0
  419. package/dist/utils/index.d.ts +4 -0
  420. package/dist/utils/index.d.ts.map +1 -0
  421. package/dist/utils/index.js +3 -0
  422. package/dist/utils/index.js.map +1 -0
  423. package/dist/utils/tsconfig-finder.d.ts +7 -0
  424. package/dist/utils/tsconfig-finder.d.ts.map +1 -0
  425. package/dist/utils/tsconfig-finder.js +31 -0
  426. package/dist/utils/tsconfig-finder.js.map +1 -0
  427. package/package.json +95 -0
package/README.md ADDED
@@ -0,0 +1,537 @@
1
+ # ArchGuard
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, with optional LLM-powered grouping for better diagram organization.
4
+
5
+ ## Screenshots
6
+
7
+ ### Package-Level Overview
8
+ ![Package Overview](docs/screenshots/overview-package.png)
9
+
10
+ ### Class-Level Diagram
11
+ ![Class Diagram](docs/screenshots/class-all-classes.png)
12
+
13
+ ### Method-Level Detail (CLI Module)
14
+ ![CLI Module Methods](docs/screenshots/method-cli-module.png)
15
+
16
+ ## Features
17
+
18
+ - **Multi-Language Support**: TypeScript, Go, Java, Python via plugin system
19
+ - **Multi-Level Diagrams**: Package (high-level), Class (default), Method (low-level)
20
+ - **Go Architecture Atlas**: 4-layer visualization — package graph, capability graph, goroutine topology, flow graph
21
+ - **Parallel Processing**: High-performance parsing with configurable concurrency
22
+ - **Smart Caching**: File-based caching with SHA-256 hashing for fast repeated runs
23
+ - **AI-Powered Grouping**: Optional LLM-powered intelligent grouping via Claude API
24
+ - **Zero External Dependencies**: Local Mermaid rendering using isomorphic-mermaid
25
+ - **Five-Layer Validation**: Automatic syntax, structure, render, quality, and auto-repair validation
26
+ - **Configuration Files**: Project-level config with `archguard.config.json` support
27
+ - **Rich CLI**: Interactive progress display with real-time feedback
28
+
29
+ ## Quick Start
30
+
31
+ ### Installation
32
+
33
+ ```bash
34
+ npm install -g archguard
35
+ ```
36
+
37
+ Or as a dev dependency:
38
+
39
+ ```bash
40
+ npm install --save-dev archguard
41
+ ```
42
+
43
+ ### Basic Usage
44
+
45
+ Analyze a TypeScript project:
46
+
47
+ ```bash
48
+ archguard analyze -s ./src --output-dir ./docs/architecture
49
+ ```
50
+
51
+ Analyze a Go project:
52
+
53
+ ```bash
54
+ archguard analyze -s ./cmd --lang go --output-dir ./docs/architecture
55
+ ```
56
+
57
+ This generates `architecture.mmd` (Mermaid source), `architecture.svg`, and `architecture.png`.
58
+
59
+ ### Multi-Level Diagrams
60
+
61
+ ```bash
62
+ # Package-level overview (high-level)
63
+ archguard analyze -s ./src -l package -n overview
64
+
65
+ # Class-level detail (default)
66
+ archguard analyze -s ./src -l class -n architecture
67
+
68
+ # Method-level detail (granular)
69
+ archguard analyze -s ./src/core -l method -n core-detail
70
+ ```
71
+
72
+ ## CLI Commands
73
+
74
+ ### `analyze`
75
+
76
+ Analyze a project and generate architecture diagrams.
77
+
78
+ ```bash
79
+ archguard analyze [options]
80
+ ```
81
+
82
+ **Source & Level:**
83
+
84
+ - `-s, --sources <paths...>` - Source directories (repeatable)
85
+ - `-l, --level <level>` - Detail level: `package` | `class` | `method` (default: `class`)
86
+ - `-n, --name <name>` - Diagram name, supports paths like `modules/auth` (default: `architecture`)
87
+ - `--lang <language>` - Language: `typescript` | `go` | `java` | `python` (auto-detected)
88
+
89
+ **Output:**
90
+
91
+ - `--output-dir <dir>` - Output directory (default: `./archguard`)
92
+ - `-f, --format <type>` - Output format: `mermaid` | `json` (default: `mermaid`)
93
+ - `-e, --exclude <patterns...>` - Exclude glob patterns
94
+
95
+ **Performance:**
96
+
97
+ - `--no-cache` - Disable cache
98
+ - `-c, --concurrency <num>` - Parallel parsing workers (default: CPU cores)
99
+ - `-v, --verbose` - Verbose output
100
+
101
+ **Mermaid:**
102
+
103
+ - `--mermaid-theme <theme>` - Theme: `default` | `forest` | `dark` | `neutral`
104
+ - `--no-llm-grouping` - Use heuristic grouping instead of LLM
105
+
106
+ **Go Atlas** (enabled by default for Go):
107
+
108
+ - `--no-atlas` - Disable Atlas mode, use standard Go parsing
109
+ - `--atlas-layers <layers>` - Comma-separated layers: `package,capability,goroutine,flow`
110
+ - `--atlas-strategy <strategy>` - Analysis strategy: `none` | `selective` | `full`
111
+ - `--atlas-entry-points <types>` - Entry point types to focus on
112
+ - `--atlas-include-tests` - Include test packages in Atlas
113
+
114
+ **Multi-Diagram (config file):**
115
+
116
+ - `--config <path>` - Config file path (default: `archguard.config.json`)
117
+ - `--diagrams <names...>` - Generate only specific diagrams by name
118
+
119
+ **Claude CLI:**
120
+
121
+ - `--cli-command <command>` - Claude CLI executable (default: `claude`)
122
+ - `--cli-args <args>` - Additional Claude CLI arguments
123
+
124
+ **Examples:**
125
+
126
+ ```bash
127
+ # Basic analysis
128
+ archguard analyze
129
+
130
+ # Analyze specific directory with custom output
131
+ archguard analyze -s ./packages/core --output-dir ./docs/core-architecture
132
+
133
+ # Generate JSON for tooling integration
134
+ archguard analyze -s ./src --output-dir . -f json
135
+
136
+ # Go project with Architecture Atlas
137
+ archguard analyze -s ./cmd --lang go
138
+
139
+ # Go without Atlas (faster, basic diagram)
140
+ archguard analyze -s ./cmd --lang go --no-atlas
141
+
142
+ # High concurrency
143
+ archguard analyze -s ./src -c 8 -v
144
+
145
+ # Exclude test files
146
+ archguard analyze -s ./src -e "**/*.test.ts" "**/*.spec.ts"
147
+
148
+ # Disable LLM grouping (heuristic, no Claude needed)
149
+ archguard analyze -s ./src --no-llm-grouping
150
+
151
+ # Dark theme
152
+ archguard analyze -s ./src --mermaid-theme dark
153
+ ```
154
+
155
+ ### `init`
156
+
157
+ Initialize configuration file:
158
+
159
+ ```bash
160
+ archguard init
161
+ ```
162
+
163
+ Creates `archguard.config.json` with defaults. Use `-f js` for a JavaScript config.
164
+
165
+ ### `cache`
166
+
167
+ ```bash
168
+ archguard cache stats # View cache statistics
169
+ archguard cache clear # Clear all cached data
170
+ archguard cache path # Show cache directory
171
+ ```
172
+
173
+ ## Language Support
174
+
175
+ | Language | Status | Parser | Features |
176
+ |------------|--------|---------------------------|----------------------------------------------------|
177
+ | TypeScript | Stable | ts-morph (AST) | Classes, interfaces, enums, dependencies, path aliases |
178
+ | Go | Stable | tree-sitter + gopls | Structs, interfaces, goroutines, Architecture Atlas |
179
+ | Java | Beta | tree-sitter | Classes, interfaces, Maven/Gradle deps |
180
+ | Python | Beta | tree-sitter | Classes, functions, pip/Poetry deps |
181
+
182
+ ### Go Architecture Atlas
183
+
184
+ For Go projects, ArchGuard generates a multi-layer architecture atlas showing:
185
+
186
+ - **Package Graph** — inter-package dependencies and coupling
187
+ - **Capability Graph** — functional capability clusters
188
+ - **Goroutine Topology** — concurrent execution patterns and channel topology
189
+ - **Flow Graph** — data and control flow paths
190
+
191
+ ```bash
192
+ # Full Atlas (default when --lang go)
193
+ archguard analyze -s ./cmd --lang go
194
+
195
+ # Specific layers only
196
+ archguard analyze -s ./cmd --lang go --atlas-layers package,capability
197
+
198
+ # Standard diagram without Atlas
199
+ archguard analyze -s ./cmd --lang go --no-atlas
200
+ ```
201
+
202
+ gopls is optional but improves interface detection accuracy from ~75% to ~95%:
203
+
204
+ ```bash
205
+ go install golang.org/x/tools/gopls@latest
206
+ ```
207
+
208
+ See [Go Plugin Usage Guide](docs/user-guide/golang-plugin-usage.md) for details.
209
+
210
+ ## Configuration
211
+
212
+ ### `archguard.config.json`
213
+
214
+ ```json
215
+ {
216
+ "source": "./src",
217
+ "format": "mermaid",
218
+ "exclude": ["**/*.test.ts", "**/*.spec.ts", "**/node_modules/**"],
219
+ "concurrency": 4,
220
+ "outputDir": "./archguard",
221
+ "cache": { "enabled": true },
222
+ "mermaid": {
223
+ "enableLLMGrouping": true,
224
+ "renderer": "isomorphic",
225
+ "theme": "default",
226
+ "transparentBackground": true
227
+ },
228
+ "cli": {
229
+ "command": "claude",
230
+ "args": [],
231
+ "timeout": 60000
232
+ }
233
+ }
234
+ ```
235
+
236
+ ### Multi-Diagram Configuration
237
+
238
+ Generate multiple diagrams with different sources and levels in one run:
239
+
240
+ ```json
241
+ {
242
+ "diagrams": [
243
+ {
244
+ "name": "overview",
245
+ "sources": ["./src"],
246
+ "level": "package"
247
+ },
248
+ {
249
+ "name": "modules/cli",
250
+ "sources": ["./src/cli"],
251
+ "level": "class"
252
+ },
253
+ {
254
+ "name": "modules/parser",
255
+ "sources": ["./src/parser"],
256
+ "level": "method"
257
+ }
258
+ ],
259
+ "outputDir": "./docs/architecture"
260
+ }
261
+ ```
262
+
263
+ ```bash
264
+ # Generate all diagrams
265
+ archguard analyze
266
+
267
+ # Generate specific diagrams only
268
+ archguard analyze --diagrams overview modules/cli
269
+ ```
270
+
271
+ ### Configuration Fields
272
+
273
+ | Field | Type | Default | Description |
274
+ |-------|------|---------|-------------|
275
+ | `source` | string | `./src` | Source directory (single diagram mode) |
276
+ | `diagrams` | array | — | Multi-diagram config (overrides `source`) |
277
+ | `format` | string | `mermaid` | Output format: `mermaid` or `json` |
278
+ | `exclude` | string[] | `[]` | Glob patterns to exclude |
279
+ | `concurrency` | number | CPU cores | Parallel parsing workers |
280
+ | `outputDir` | string | `./archguard` | Output directory |
281
+ | `cache.enabled` | boolean | `true` | Enable file-based caching |
282
+ | `mermaid.enableLLMGrouping` | boolean | `true` | LLM-powered entity grouping |
283
+ | `mermaid.theme` | string | `default` | Diagram theme |
284
+ | `mermaid.transparentBackground` | boolean | `true` | Transparent PNG background |
285
+ | `cli.command` | string | `claude` | Claude CLI executable |
286
+ | `cli.timeout` | number | `60000` | Claude CLI timeout (ms) |
287
+
288
+ ## Output Formats
289
+
290
+ ### Mermaid (default)
291
+
292
+ Generates `.mmd`, `.svg`, and `.png` files:
293
+
294
+ ```
295
+ archguard/
296
+ ├── overview/
297
+ │ ├── package.mmd
298
+ │ ├── package.svg
299
+ │ └── package.png
300
+ ├── modules/
301
+ │ ├── cli.mmd
302
+ │ └── cli.png
303
+ └── index.md
304
+ ```
305
+
306
+ Example `.mmd` output:
307
+
308
+ ```
309
+ graph TD
310
+ UserService[UserService<br/>+ getUser(id): Promise&lt;User&gt;<br/>+ createUser(data): Promise&lt;User&gt;]
311
+ User[User<br/>+ id: string<br/>+ name: string]
312
+
313
+ UserService --> User : uses
314
+ ```
315
+
316
+ ### ArchJSON
317
+
318
+ Structured JSON for tooling integration:
319
+
320
+ ```json
321
+ {
322
+ "version": "1.0",
323
+ "language": "typescript",
324
+ "timestamp": "2024-01-01T00:00:00.000Z",
325
+ "entities": [
326
+ {
327
+ "id": "UserService",
328
+ "name": "UserService",
329
+ "type": "class",
330
+ "members": [...]
331
+ }
332
+ ],
333
+ "relations": [
334
+ { "from": "UserService", "to": "User", "type": "dependency" }
335
+ ]
336
+ }
337
+ ```
338
+
339
+ ## Performance
340
+
341
+ - **Parallel Processing**: Automatically uses all CPU cores for parsing
342
+ - **Smart Caching**: SHA-256 file hashing; 80%+ cache hit rate on repeated runs
343
+ - **Benchmark** (ArchGuard self-analysis, 30+ files):
344
+ - First run: ~6–10 seconds
345
+ - Cached run: < 3 seconds
346
+ - Throughput: ~4–5 files/second
347
+ - Memory: < 300 MB
348
+
349
+ Tune concurrency:
350
+
351
+ ```bash
352
+ archguard analyze -s ./src -c 8 # custom workers
353
+ archguard analyze -s ./src -c 1 # sequential (debugging)
354
+ ```
355
+
356
+ ## Architecture
357
+
358
+ ### Project Structure
359
+
360
+ ```
361
+ archguard/
362
+ ├── src/
363
+ │ ├── cli/ # CLI commands and utilities
364
+ │ │ ├── commands/ # analyze, init, cache
365
+ │ │ ├── progress/ # Progress reporting
366
+ │ │ ├── processors/ # Diagram processing pipeline
367
+ │ │ └── utils/ # Config loader, error handler
368
+ │ ├── core/ # Plugin registry and interfaces
369
+ │ │ └── interfaces/ # ILanguagePlugin, IParser, IDependencyExtractor
370
+ │ ├── parser/ # TypeScript AST parsing
371
+ │ │ ├── typescript-parser.ts
372
+ │ │ ├── parallel-parser.ts
373
+ │ │ └── extractors/ # class, interface, enum, relation
374
+ │ ├── mermaid/ # Diagram generation
375
+ │ │ ├── diagram-generator.ts
376
+ │ │ ├── renderer.ts
377
+ │ │ ├── validation-pipeline.ts
378
+ │ │ └── validators/ # parse, structural, render, quality
379
+ │ ├── plugins/ # Language plugins
380
+ │ │ ├── typescript/ # Stable
381
+ │ │ ├── golang/ # Stable (tree-sitter + gopls + Atlas)
382
+ │ │ │ └── atlas/ # package, capability, goroutine, flow builders
383
+ │ │ ├── java/ # Beta
384
+ │ │ └── python/ # Beta
385
+ │ └── types/ # Core types (config, ArchJSON, extensions)
386
+ ├── tests/
387
+ │ ├── unit/ # Unit tests
388
+ │ ├── integration/ # Integration tests
389
+ │ ├── plugins/ # Per-plugin tests
390
+ │ └── core/ # Plugin registry tests
391
+ └── docs/ # Documentation and screenshots
392
+ ```
393
+
394
+ ### Data Flow
395
+
396
+ ```
397
+ Source Files
398
+
399
+ ▼ Language Plugin (TypeScript / Go / Java / Python)
400
+ AST / Tree-sitter Parse
401
+
402
+ ▼ Extractors
403
+ ArchJSON (entities + relations)
404
+
405
+ ├─► (Go) Atlas Builders → 4-layer extension
406
+
407
+ ▼ LLM Grouper (optional, Claude API)
408
+ Grouped ArchJSON
409
+
410
+ ▼ Mermaid Generator
411
+ .mmd syntax
412
+
413
+ ▼ Five-Layer Validator + Auto-repair
414
+ Valid .mmd
415
+
416
+ ▼ isomorphic-mermaid + sharp
417
+ .svg + .png
418
+ ```
419
+
420
+ ## Development
421
+
422
+ ### Prerequisites
423
+
424
+ - Node.js >= 18.0.0
425
+ - npm or yarn
426
+
427
+ Optional, for enhanced features:
428
+ - **Claude CLI** — LLM-powered diagram grouping
429
+ - **gopls** — Semantic interface detection for Go projects
430
+
431
+ ### Setup
432
+
433
+ ```bash
434
+ git clone https://github.com/your-org/archguard.git
435
+ cd archguard
436
+ npm install
437
+ npm run build
438
+ npm test
439
+ ```
440
+
441
+ ### Testing
442
+
443
+ ```bash
444
+ npm test # All tests (vitest)
445
+ npm run test:unit # Unit tests
446
+ npm run test:integration # Integration tests
447
+ npm run test:coverage # With coverage report
448
+ npm run test:watch # Watch mode
449
+ ```
450
+
451
+ ### Code Quality
452
+
453
+ ```bash
454
+ npm run lint # ESLint check
455
+ npm run lint:fix # Auto-fix
456
+ npm run format # Prettier
457
+ npm run type-check # TypeScript check
458
+ npm run build && npm run lint && npm run type-check && npm test
459
+ ```
460
+
461
+ ### Self-Analysis
462
+
463
+ ```bash
464
+ npm run build
465
+
466
+ # Analyze ArchGuard itself
467
+ node dist/cli/index.js analyze -v
468
+
469
+ # Package-level overview
470
+ node dist/cli/index.js analyze -l package -n overview
471
+
472
+ # Method-level detail for a module
473
+ node dist/cli/index.js analyze -s ./src/cli -l method -n cli-module
474
+ ```
475
+
476
+ ## Technology Stack
477
+
478
+ | Category | Technology | Version | Purpose |
479
+ |----------|-----------|---------|---------|
480
+ | Language | TypeScript | ^5.3.0 | Type-safe development |
481
+ | Runtime | Node.js | >=18.0.0 | JavaScript runtime |
482
+ | TS Parser | ts-morph | ^21.0.0 | TypeScript AST |
483
+ | Go Parser | tree-sitter + tree-sitter-go | ^0.25.0 | Go AST |
484
+ | Java/Python Parser | tree-sitter | ^0.25.0 | Java/Python AST |
485
+ | Go LSP | gopls | latest | Semantic interface detection |
486
+ | Diagram Generation | isomorphic-mermaid | ^0.1.1 | Local Mermaid rendering |
487
+ | Image Processing | sharp | ^0.34.5 | SVG → PNG conversion |
488
+ | LLM Integration | @anthropic-ai/sdk | ^0.20.0 | Optional LLM grouping |
489
+ | Process Management | execa | ^8.0.0 | Subprocess execution |
490
+ | Testing | Vitest | ^1.2.0 | Unit/integration tests |
491
+ | CLI | commander | ^11.1.0 | Command-line interface |
492
+ | Progress | ora, chalk | ^8.x, ^5.x | Interactive CLI |
493
+ | Concurrency | p-limit | ^5.0.0 | Parallel processing |
494
+ | Configuration | zod | ^3.25.76 | Config validation |
495
+
496
+ ## Troubleshooting
497
+
498
+ See [TROUBLESHOOTING.md](docs/user-guide/troubleshooting.md) for common issues.
499
+
500
+ Quick fixes:
501
+
502
+ - **LLM grouping fails** — run with `--no-llm-grouping` to use heuristic mode
503
+ - **Go interface detection low** — install gopls: `go install golang.org/x/tools/gopls@latest`
504
+ - **Slow first run** — normal; subsequent runs use cache (80%+ hit rate)
505
+ - **Render errors** — the five-layer validator auto-repairs most issues; run with `-v` for details
506
+
507
+ ## Documentation
508
+
509
+ - [CLI Usage Guide](docs/user-guide/cli-usage.md)
510
+ - [Configuration Reference](docs/user-guide/configuration.md)
511
+ - [Go Plugin Usage Guide](docs/user-guide/golang-plugin-usage.md)
512
+ - [Plugin Development Guide](docs/dev-guide/plugin-development-guide.md)
513
+ - [Plugin Registry](docs/user-guide/plugin-registry.md)
514
+ - [Troubleshooting](docs/user-guide/troubleshooting.md)
515
+
516
+ ## Contributing
517
+
518
+ This project follows:
519
+
520
+ - **TDD Methodology**: Tests written before implementation
521
+ - **Plugin System**: Add new languages via `ILanguagePlugin`
522
+ - **Clean Code**: Readable, maintainable code
523
+
524
+ See [CONTRIBUTING.md](docs/CONTRIBUTING.md) for documentation management details.
525
+
526
+ ## License
527
+
528
+ MIT
529
+
530
+ ## Credits
531
+
532
+ Built with:
533
+ - [ts-morph](https://ts-morph.com/) for TypeScript parsing
534
+ - [tree-sitter](https://tree-sitter.github.io/) for Go/Java/Python parsing
535
+ - [Mermaid](https://mermaid.js.org/) for diagram syntax
536
+ - [isomorphic-mermaid](https://github.com/brede95/isomorphic-mermaid) for rendering
537
+ - [Claude AI](https://www.anthropic.com/claude) for optional LLM-powered grouping
@@ -0,0 +1,12 @@
1
+ import type { ArchJSON } from '../../types/index.js';
2
+ export declare const CACHE_VERSION = "1.0.0";
3
+ export declare class ArchJsonDiskCache {
4
+ private readonly cacheDir;
5
+ constructor(cacheDir: string);
6
+ private keyPath;
7
+ get(key: string): Promise<ArchJSON | null>;
8
+ set(key: string, archJson: ArchJSON): Promise<void>;
9
+ computeKey(files: string[]): Promise<string>;
10
+ clear(): Promise<void>;
11
+ }
12
+ //# sourceMappingURL=arch-json-disk-cache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arch-json-disk-cache.d.ts","sourceRoot":"","sources":["../../../src/cli/cache/arch-json-disk-cache.ts"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,kBAAkB,CAAC;AAEjD,eAAO,MAAM,aAAa,UAAU,CAAC;AAQrC,qBAAa,iBAAiB;IAChB,OAAO,CAAC,QAAQ,CAAC,QAAQ;gBAAR,QAAQ,EAAE,MAAM;IAE7C,OAAO,CAAC,OAAO;IAKT,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,QAAQ,GAAG,IAAI,CAAC;IAY1C,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,GAAG,OAAO,CAAC,IAAI,CAAC;IAWnD,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAY5C,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;CAG7B"}
@@ -0,0 +1,51 @@
1
+ import fs from 'fs-extra';
2
+ import path from 'path';
3
+ import { createHash } from 'crypto';
4
+ export const CACHE_VERSION = '1.0.0';
5
+ export class ArchJsonDiskCache {
6
+ cacheDir;
7
+ constructor(cacheDir) {
8
+ this.cacheDir = cacheDir;
9
+ }
10
+ keyPath(key) {
11
+ const sub = key.slice(0, 2);
12
+ return path.join(this.cacheDir, sub, `${key}.json`);
13
+ }
14
+ async get(key) {
15
+ const filePath = this.keyPath(key);
16
+ try {
17
+ if (!(await fs.pathExists(filePath)))
18
+ return null;
19
+ const entry = (await fs.readJson(filePath));
20
+ if (entry.version !== CACHE_VERSION)
21
+ return null;
22
+ return entry.archJson;
23
+ }
24
+ catch {
25
+ return null;
26
+ }
27
+ }
28
+ async set(key, archJson) {
29
+ const filePath = this.keyPath(key);
30
+ await fs.ensureDir(path.dirname(filePath));
31
+ const entry = {
32
+ version: CACHE_VERSION,
33
+ createdAt: new Date().toISOString(),
34
+ archJson,
35
+ };
36
+ await fs.writeJson(filePath, entry);
37
+ }
38
+ async computeKey(files) {
39
+ const sorted = [...files].sort();
40
+ const hashes = await Promise.all(sorted.map(async (f) => {
41
+ const content = await fs.readFile(f);
42
+ return createHash('sha256').update(content).digest('hex');
43
+ }));
44
+ const combined = sorted.map((f, i) => `${f}:${hashes[i]}`).join('\n');
45
+ return createHash('sha256').update(combined).digest('hex');
46
+ }
47
+ async clear() {
48
+ await fs.emptyDir(this.cacheDir);
49
+ }
50
+ }
51
+ //# sourceMappingURL=arch-json-disk-cache.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"arch-json-disk-cache.js","sourceRoot":"","sources":["../../../src/cli/cache/arch-json-disk-cache.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,UAAU,CAAC;AAC1B,OAAO,IAAI,MAAM,MAAM,CAAC;AACxB,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAGpC,MAAM,CAAC,MAAM,aAAa,GAAG,OAAO,CAAC;AAQrC,MAAM,OAAO,iBAAiB;IACC;IAA7B,YAA6B,QAAgB;QAAhB,aAAQ,GAAR,QAAQ,CAAQ;IAAG,CAAC;IAEzC,OAAO,CAAC,GAAW;QACzB,MAAM,GAAG,GAAG,GAAG,CAAC,KAAK,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC;QAC5B,OAAO,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,GAAG,EAAE,GAAG,GAAG,OAAO,CAAC,CAAC;IACtD,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW;QACnB,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,IAAI,CAAC;YACH,IAAI,CAAC,CAAC,MAAM,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC;gBAAE,OAAO,IAAI,CAAC;YAClD,MAAM,KAAK,GAAG,CAAC,MAAM,EAAE,CAAC,QAAQ,CAAC,QAAQ,CAAC,CAAe,CAAC;YAC1D,IAAI,KAAK,CAAC,OAAO,KAAK,aAAa;gBAAE,OAAO,IAAI,CAAC;YACjD,OAAO,KAAK,CAAC,QAAQ,CAAC;QACxB,CAAC;QAAC,MAAM,CAAC;YACP,OAAO,IAAI,CAAC;QACd,CAAC;IACH,CAAC;IAED,KAAK,CAAC,GAAG,CAAC,GAAW,EAAE,QAAkB;QACvC,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;QACnC,MAAM,EAAE,CAAC,SAAS,CAAC,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC,CAAC;QAC3C,MAAM,KAAK,GAAe;YACxB,OAAO,EAAE,aAAa;YACtB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACnC,QAAQ;SACT,CAAC;QACF,MAAM,EAAE,CAAC,SAAS,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACtC,CAAC;IAED,KAAK,CAAC,UAAU,CAAC,KAAe;QAC9B,MAAM,MAAM,GAAG,CAAC,GAAG,KAAK,CAAC,CAAC,IAAI,EAAE,CAAC;QACjC,MAAM,MAAM,GAAG,MAAM,OAAO,CAAC,GAAG,CAC9B,MAAM,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,EAAE,EAAE;YACrB,MAAM,OAAO,GAAG,MAAM,EAAE,CAAC,QAAQ,CAAC,CAAC,CAAC,CAAC;YACrC,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,OAAO,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;QAC5D,CAAC,CAAC,CACH,CAAC;QACF,MAAM,QAAQ,GAAG,MAAM,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,CAAC,IAAI,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QACtE,OAAO,UAAU,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,QAAQ,CAAC,CAAC,MAAM,CAAC,KAAK,CAAC,CAAC;IAC7D,CAAC;IAED,KAAK,CAAC,KAAK;QACT,MAAM,EAAE,CAAC,QAAQ,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnC,CAAC;CACF"}
@@ -0,0 +1,28 @@
1
+ export interface CacheStats {
2
+ hits: number;
3
+ misses: number;
4
+ hitRate: number;
5
+ totalSize: number;
6
+ }
7
+ export interface CacheOptions {
8
+ ttl?: number;
9
+ }
10
+ export declare class CacheManager {
11
+ readonly cacheDir: string;
12
+ private stats;
13
+ private defaultTTL;
14
+ constructor(cacheDir?: string);
15
+ computeFileHash(filePath: string): Promise<string>;
16
+ get<T = unknown>(filePath: string, hash: string): Promise<T | null>;
17
+ set<T = unknown>(filePath: string, hash: string, data: T, options?: CacheOptions): Promise<void>;
18
+ clear(): Promise<void>;
19
+ getStats(): CacheStats;
20
+ getCacheSize(): Promise<number>;
21
+ private getAllCacheFiles;
22
+ private getCacheKey;
23
+ private getCachePath;
24
+ private updateHitRate;
25
+ setDefaultTTL(ttl: number): void;
26
+ getDefaultTTL(): number;
27
+ }
28
+ //# sourceMappingURL=cache-manager.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cache-manager.d.ts","sourceRoot":"","sources":["../../src/cli/cache-manager.ts"],"names":[],"mappings":"AASA,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,YAAY;IAC3B,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAiBD,qBAAa,YAAY;IACvB,SAAgB,QAAQ,EAAE,MAAM,CAAC;IACjC,OAAO,CAAC,KAAK,CAKX;IACF,OAAO,CAAC,UAAU,CAAiB;gBAEvB,QAAQ,CAAC,EAAE,MAAM;IAOvB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IASlD,GAAG,CAAC,CAAC,GAAG,OAAO,EAAE,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,CAAC,GAAG,IAAI,CAAC;IAoCnE,GAAG,CAAC,CAAC,GAAG,OAAO,EACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,EACZ,IAAI,EAAE,CAAC,EACP,OAAO,GAAE,YAAiB,GACzB,OAAO,CAAC,IAAI,CAAC;IAiBV,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAiB5B,QAAQ,IAAI,UAAU;IAOhB,YAAY,IAAI,OAAO,CAAC,MAAM,CAAC;YAwBvB,gBAAgB;IA0B9B,OAAO,CAAC,WAAW;IAQnB,OAAO,CAAC,YAAY;IASpB,OAAO,CAAC,aAAa;IAQrB,aAAa,CAAC,GAAG,EAAE,MAAM,GAAG,IAAI;IAOhC,aAAa,IAAI,MAAM;CAGxB"}