@noyrax/5d-database-plugin 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 (369) hide show
  1. package/ADR_VORSCHLAEGE.md +247 -0
  2. package/CHROMADB_SETUP.md +69 -0
  3. package/IMPROVEMENT_ROADMAP.md +435 -0
  4. package/INSTALLATION_READINESS.md +150 -0
  5. package/KNOWN_ISSUES.md +210 -0
  6. package/LICENSE +21 -0
  7. package/MCP_SERVER_SETUP.md +359 -0
  8. package/MCP_SERVER_TEST_REPORT.md +206 -0
  9. package/NOYRAX_INTEGRATION.md +224 -0
  10. package/QUICK_START.md +316 -0
  11. package/README.md +240 -0
  12. package/SETUP_NEW_PROJECT.md +260 -0
  13. package/SYSTEM_ANALYSIS_REPORT.md +341 -0
  14. package/out/api/adr-api.d.ts +22 -0
  15. package/out/api/adr-api.d.ts.map +1 -0
  16. package/out/api/adr-api.js +38 -0
  17. package/out/api/adr-api.js.map +1 -0
  18. package/out/api/bootstrap-api.d.ts +43 -0
  19. package/out/api/bootstrap-api.d.ts.map +1 -0
  20. package/out/api/bootstrap-api.js +88 -0
  21. package/out/api/bootstrap-api.js.map +1 -0
  22. package/out/api/change-api.d.ts +30 -0
  23. package/out/api/change-api.d.ts.map +1 -0
  24. package/out/api/change-api.js +54 -0
  25. package/out/api/change-api.js.map +1 -0
  26. package/out/api/context-builder.d.ts +81 -0
  27. package/out/api/context-builder.d.ts.map +1 -0
  28. package/out/api/context-builder.js +288 -0
  29. package/out/api/context-builder.js.map +1 -0
  30. package/out/api/cross-dimension-api.d.ts +43 -0
  31. package/out/api/cross-dimension-api.d.ts.map +1 -0
  32. package/out/api/cross-dimension-api.js +55 -0
  33. package/out/api/cross-dimension-api.js.map +1 -0
  34. package/out/api/dependency-api.d.ts +26 -0
  35. package/out/api/dependency-api.d.ts.map +1 -0
  36. package/out/api/dependency-api.js +46 -0
  37. package/out/api/dependency-api.js.map +1 -0
  38. package/out/api/learning-path-api.d.ts +49 -0
  39. package/out/api/learning-path-api.d.ts.map +1 -0
  40. package/out/api/learning-path-api.js +174 -0
  41. package/out/api/learning-path-api.js.map +1 -0
  42. package/out/api/module-api.d.ts +26 -0
  43. package/out/api/module-api.d.ts.map +1 -0
  44. package/out/api/module-api.js +46 -0
  45. package/out/api/module-api.js.map +1 -0
  46. package/out/api/search-api.d.ts +64 -0
  47. package/out/api/search-api.d.ts.map +1 -0
  48. package/out/api/search-api.js +235 -0
  49. package/out/api/search-api.js.map +1 -0
  50. package/out/api/self-explanation-api.d.ts +71 -0
  51. package/out/api/self-explanation-api.d.ts.map +1 -0
  52. package/out/api/self-explanation-api.js +153 -0
  53. package/out/api/self-explanation-api.js.map +1 -0
  54. package/out/api/semantic-search-api.d.ts +64 -0
  55. package/out/api/semantic-search-api.d.ts.map +1 -0
  56. package/out/api/semantic-search-api.js +205 -0
  57. package/out/api/semantic-search-api.js.map +1 -0
  58. package/out/api/symbol-api.d.ts +22 -0
  59. package/out/api/symbol-api.d.ts.map +1 -0
  60. package/out/api/symbol-api.js +38 -0
  61. package/out/api/symbol-api.js.map +1 -0
  62. package/out/api/vector-api.d.ts +26 -0
  63. package/out/api/vector-api.d.ts.map +1 -0
  64. package/out/api/vector-api.js +49 -0
  65. package/out/api/vector-api.js.map +1 -0
  66. package/out/cli/embedding-cli.d.ts +3 -0
  67. package/out/cli/embedding-cli.d.ts.map +1 -0
  68. package/out/cli/embedding-cli.js +151 -0
  69. package/out/cli/embedding-cli.js.map +1 -0
  70. package/out/cli/ingest-cli.d.ts +3 -0
  71. package/out/cli/ingest-cli.d.ts.map +1 -0
  72. package/out/cli/ingest-cli.js +145 -0
  73. package/out/cli/ingest-cli.js.map +1 -0
  74. package/out/cli/mcp-server-cli.d.ts +3 -0
  75. package/out/cli/mcp-server-cli.d.ts.map +1 -0
  76. package/out/cli/mcp-server-cli.js +159 -0
  77. package/out/cli/mcp-server-cli.js.map +1 -0
  78. package/out/cli/query-cli.d.ts +3 -0
  79. package/out/cli/query-cli.d.ts.map +1 -0
  80. package/out/cli/query-cli.js +217 -0
  81. package/out/cli/query-cli.js.map +1 -0
  82. package/out/cli/semantic-search-cli.d.ts +3 -0
  83. package/out/cli/semantic-search-cli.d.ts.map +1 -0
  84. package/out/cli/semantic-search-cli.js +196 -0
  85. package/out/cli/semantic-search-cli.js.map +1 -0
  86. package/out/cli/test-chromadb.d.ts +3 -0
  87. package/out/cli/test-chromadb.d.ts.map +1 -0
  88. package/out/cli/test-chromadb.js +204 -0
  89. package/out/cli/test-chromadb.js.map +1 -0
  90. package/out/cli/test-v-dimension.d.ts +3 -0
  91. package/out/cli/test-v-dimension.d.ts.map +1 -0
  92. package/out/cli/test-v-dimension.js +330 -0
  93. package/out/cli/test-v-dimension.js.map +1 -0
  94. package/out/cli/tool-cli.d.ts +3 -0
  95. package/out/cli/tool-cli.d.ts.map +1 -0
  96. package/out/cli/tool-cli.js +237 -0
  97. package/out/cli/tool-cli.js.map +1 -0
  98. package/out/cli/verify-openai-key.d.ts +3 -0
  99. package/out/cli/verify-openai-key.d.ts.map +1 -0
  100. package/out/cli/verify-openai-key.js +141 -0
  101. package/out/cli/verify-openai-key.js.map +1 -0
  102. package/out/cli/verify-vss-status.d.ts +3 -0
  103. package/out/cli/verify-vss-status.d.ts.map +1 -0
  104. package/out/cli/verify-vss-status.js +185 -0
  105. package/out/cli/verify-vss-status.js.map +1 -0
  106. package/out/core/chromadb-vector-database.d.ts +52 -0
  107. package/out/core/chromadb-vector-database.d.ts.map +1 -0
  108. package/out/core/chromadb-vector-database.js +276 -0
  109. package/out/core/chromadb-vector-database.js.map +1 -0
  110. package/out/core/docs-path-resolver.d.ts +43 -0
  111. package/out/core/docs-path-resolver.d.ts.map +1 -0
  112. package/out/core/docs-path-resolver.js +137 -0
  113. package/out/core/docs-path-resolver.js.map +1 -0
  114. package/out/core/id-mapper.d.ts +68 -0
  115. package/out/core/id-mapper.d.ts.map +1 -0
  116. package/out/core/id-mapper.js +132 -0
  117. package/out/core/id-mapper.js.map +1 -0
  118. package/out/core/migration-manager.d.ts +75 -0
  119. package/out/core/migration-manager.d.ts.map +1 -0
  120. package/out/core/migration-manager.js +212 -0
  121. package/out/core/migration-manager.js.map +1 -0
  122. package/out/core/multi-db-manager.d.ts +84 -0
  123. package/out/core/multi-db-manager.d.ts.map +1 -0
  124. package/out/core/multi-db-manager.js +206 -0
  125. package/out/core/multi-db-manager.js.map +1 -0
  126. package/out/core/transaction-manager.d.ts +69 -0
  127. package/out/core/transaction-manager.d.ts.map +1 -0
  128. package/out/core/transaction-manager.js +138 -0
  129. package/out/core/transaction-manager.js.map +1 -0
  130. package/out/core/vector-database-factory.d.ts +25 -0
  131. package/out/core/vector-database-factory.d.ts.map +1 -0
  132. package/out/core/vector-database-factory.js +82 -0
  133. package/out/core/vector-database-factory.js.map +1 -0
  134. package/out/core/vector-database-interface.d.ts +50 -0
  135. package/out/core/vector-database-interface.d.ts.map +1 -0
  136. package/out/core/vector-database-interface.js +3 -0
  137. package/out/core/vector-database-interface.js.map +1 -0
  138. package/out/core/vss-loader.d.ts +29 -0
  139. package/out/core/vss-loader.d.ts.map +1 -0
  140. package/out/core/vss-loader.js +150 -0
  141. package/out/core/vss-loader.js.map +1 -0
  142. package/out/core/vss-manager.d.ts +81 -0
  143. package/out/core/vss-manager.d.ts.map +1 -0
  144. package/out/core/vss-manager.js +323 -0
  145. package/out/core/vss-manager.js.map +1 -0
  146. package/out/core/vss-vector-database.d.ts +71 -0
  147. package/out/core/vss-vector-database.d.ts.map +1 -0
  148. package/out/core/vss-vector-database.js +284 -0
  149. package/out/core/vss-vector-database.js.map +1 -0
  150. package/out/embedding/embedding-generator.d.ts +45 -0
  151. package/out/embedding/embedding-generator.d.ts.map +1 -0
  152. package/out/embedding/embedding-generator.js +143 -0
  153. package/out/embedding/embedding-generator.js.map +1 -0
  154. package/out/embedding/embedding-pipeline.d.ts +42 -0
  155. package/out/embedding/embedding-pipeline.d.ts.map +1 -0
  156. package/out/embedding/embedding-pipeline.js +290 -0
  157. package/out/embedding/embedding-pipeline.js.map +1 -0
  158. package/out/extension.d.ts +10 -0
  159. package/out/extension.d.ts.map +1 -0
  160. package/out/extension.js +164 -0
  161. package/out/extension.js.map +1 -0
  162. package/out/ingestors/adr-ingestor.d.ts +41 -0
  163. package/out/ingestors/adr-ingestor.d.ts.map +1 -0
  164. package/out/ingestors/adr-ingestor.js +329 -0
  165. package/out/ingestors/adr-ingestor.js.map +1 -0
  166. package/out/ingestors/base-ingestor.d.ts +30 -0
  167. package/out/ingestors/base-ingestor.d.ts.map +1 -0
  168. package/out/ingestors/base-ingestor.js +3 -0
  169. package/out/ingestors/base-ingestor.js.map +1 -0
  170. package/out/ingestors/change-ingestor.d.ts +36 -0
  171. package/out/ingestors/change-ingestor.d.ts.map +1 -0
  172. package/out/ingestors/change-ingestor.js +216 -0
  173. package/out/ingestors/change-ingestor.js.map +1 -0
  174. package/out/ingestors/dependency-ingestor.d.ts +32 -0
  175. package/out/ingestors/dependency-ingestor.d.ts.map +1 -0
  176. package/out/ingestors/dependency-ingestor.js +194 -0
  177. package/out/ingestors/dependency-ingestor.js.map +1 -0
  178. package/out/ingestors/module-ingestor.d.ts +27 -0
  179. package/out/ingestors/module-ingestor.d.ts.map +1 -0
  180. package/out/ingestors/module-ingestor.js +137 -0
  181. package/out/ingestors/module-ingestor.js.map +1 -0
  182. package/out/ingestors/symbol-ingestor.d.ts +26 -0
  183. package/out/ingestors/symbol-ingestor.d.ts.map +1 -0
  184. package/out/ingestors/symbol-ingestor.js +183 -0
  185. package/out/ingestors/symbol-ingestor.js.map +1 -0
  186. package/out/mcp/resources/adrs.d.ts +13 -0
  187. package/out/mcp/resources/adrs.d.ts.map +1 -0
  188. package/out/mcp/resources/adrs.js +26 -0
  189. package/out/mcp/resources/adrs.js.map +1 -0
  190. package/out/mcp/resources/changes.d.ts +13 -0
  191. package/out/mcp/resources/changes.d.ts.map +1 -0
  192. package/out/mcp/resources/changes.js +26 -0
  193. package/out/mcp/resources/changes.js.map +1 -0
  194. package/out/mcp/resources/dependencies.d.ts +13 -0
  195. package/out/mcp/resources/dependencies.d.ts.map +1 -0
  196. package/out/mcp/resources/dependencies.js +26 -0
  197. package/out/mcp/resources/dependencies.js.map +1 -0
  198. package/out/mcp/resources/modules.d.ts +13 -0
  199. package/out/mcp/resources/modules.d.ts.map +1 -0
  200. package/out/mcp/resources/modules.js +26 -0
  201. package/out/mcp/resources/modules.js.map +1 -0
  202. package/out/mcp/resources/symbols.d.ts +13 -0
  203. package/out/mcp/resources/symbols.d.ts.map +1 -0
  204. package/out/mcp/resources/symbols.js +26 -0
  205. package/out/mcp/resources/symbols.js.map +1 -0
  206. package/out/mcp/server.d.ts +29 -0
  207. package/out/mcp/server.d.ts.map +1 -0
  208. package/out/mcp/server.js +300 -0
  209. package/out/mcp/server.js.map +1 -0
  210. package/out/mcp/tools/architecture-mining.d.ts +46 -0
  211. package/out/mcp/tools/architecture-mining.d.ts.map +1 -0
  212. package/out/mcp/tools/architecture-mining.js +272 -0
  213. package/out/mcp/tools/architecture-mining.js.map +1 -0
  214. package/out/mcp/tools/bootstrap.d.ts +9 -0
  215. package/out/mcp/tools/bootstrap.d.ts.map +1 -0
  216. package/out/mcp/tools/bootstrap.js +14 -0
  217. package/out/mcp/tools/bootstrap.js.map +1 -0
  218. package/out/mcp/tools/cross-analysis.d.ts +18 -0
  219. package/out/mcp/tools/cross-analysis.d.ts.map +1 -0
  220. package/out/mcp/tools/cross-analysis.js +23 -0
  221. package/out/mcp/tools/cross-analysis.js.map +1 -0
  222. package/out/mcp/tools/gap-analysis.d.ts +34 -0
  223. package/out/mcp/tools/gap-analysis.d.ts.map +1 -0
  224. package/out/mcp/tools/gap-analysis.js +106 -0
  225. package/out/mcp/tools/gap-analysis.js.map +1 -0
  226. package/out/mcp/tools/learning-path.d.ts +10 -0
  227. package/out/mcp/tools/learning-path.d.ts.map +1 -0
  228. package/out/mcp/tools/learning-path.js +18 -0
  229. package/out/mcp/tools/learning-path.js.map +1 -0
  230. package/out/mcp/tools/query-dependencies.d.ts +18 -0
  231. package/out/mcp/tools/query-dependencies.d.ts.map +1 -0
  232. package/out/mcp/tools/query-dependencies.js +31 -0
  233. package/out/mcp/tools/query-dependencies.js.map +1 -0
  234. package/out/mcp/tools/query-modules.d.ts +17 -0
  235. package/out/mcp/tools/query-modules.d.ts.map +1 -0
  236. package/out/mcp/tools/query-modules.js +22 -0
  237. package/out/mcp/tools/query-modules.js.map +1 -0
  238. package/out/mcp/tools/query-symbols.d.ts +18 -0
  239. package/out/mcp/tools/query-symbols.d.ts.map +1 -0
  240. package/out/mcp/tools/query-symbols.js +32 -0
  241. package/out/mcp/tools/query-symbols.js.map +1 -0
  242. package/out/mcp/tools/semantic-discovery.d.ts +12 -0
  243. package/out/mcp/tools/semantic-discovery.d.ts.map +1 -0
  244. package/out/mcp/tools/semantic-discovery.js +35 -0
  245. package/out/mcp/tools/semantic-discovery.js.map +1 -0
  246. package/out/mcp/tools/system-explanation.d.ts +9 -0
  247. package/out/mcp/tools/system-explanation.d.ts.map +1 -0
  248. package/out/mcp/tools/system-explanation.js +14 -0
  249. package/out/mcp/tools/system-explanation.js.map +1 -0
  250. package/out/mcp/types.d.ts +19 -0
  251. package/out/mcp/types.d.ts.map +1 -0
  252. package/out/mcp/types.js +6 -0
  253. package/out/mcp/types.js.map +1 -0
  254. package/out/models/adr.d.ts +26 -0
  255. package/out/models/adr.d.ts.map +1 -0
  256. package/out/models/adr.js +3 -0
  257. package/out/models/adr.js.map +1 -0
  258. package/out/models/change.d.ts +42 -0
  259. package/out/models/change.d.ts.map +1 -0
  260. package/out/models/change.js +3 -0
  261. package/out/models/change.js.map +1 -0
  262. package/out/models/dependency.d.ts +37 -0
  263. package/out/models/dependency.d.ts.map +1 -0
  264. package/out/models/dependency.js +3 -0
  265. package/out/models/dependency.js.map +1 -0
  266. package/out/models/entity-reference.d.ts +20 -0
  267. package/out/models/entity-reference.d.ts.map +1 -0
  268. package/out/models/entity-reference.js +19 -0
  269. package/out/models/entity-reference.js.map +1 -0
  270. package/out/models/module.d.ts +26 -0
  271. package/out/models/module.d.ts.map +1 -0
  272. package/out/models/module.js +3 -0
  273. package/out/models/module.js.map +1 -0
  274. package/out/models/symbol.d.ts +31 -0
  275. package/out/models/symbol.d.ts.map +1 -0
  276. package/out/models/symbol.js +3 -0
  277. package/out/models/symbol.js.map +1 -0
  278. package/out/repositories/adr-repository.d.ts +41 -0
  279. package/out/repositories/adr-repository.d.ts.map +1 -0
  280. package/out/repositories/adr-repository.js +128 -0
  281. package/out/repositories/adr-repository.js.map +1 -0
  282. package/out/repositories/base-repository.d.ts +86 -0
  283. package/out/repositories/base-repository.d.ts.map +1 -0
  284. package/out/repositories/base-repository.js +66 -0
  285. package/out/repositories/base-repository.js.map +1 -0
  286. package/out/repositories/change-repository.d.ts +40 -0
  287. package/out/repositories/change-repository.d.ts.map +1 -0
  288. package/out/repositories/change-repository.js +150 -0
  289. package/out/repositories/change-repository.js.map +1 -0
  290. package/out/repositories/dependency-repository.d.ts +40 -0
  291. package/out/repositories/dependency-repository.d.ts.map +1 -0
  292. package/out/repositories/dependency-repository.js +129 -0
  293. package/out/repositories/dependency-repository.js.map +1 -0
  294. package/out/repositories/embedding-repository.d.ts +64 -0
  295. package/out/repositories/embedding-repository.d.ts.map +1 -0
  296. package/out/repositories/embedding-repository.js +126 -0
  297. package/out/repositories/embedding-repository.js.map +1 -0
  298. package/out/repositories/importance-repository.d.ts +63 -0
  299. package/out/repositories/importance-repository.d.ts.map +1 -0
  300. package/out/repositories/importance-repository.js +117 -0
  301. package/out/repositories/importance-repository.js.map +1 -0
  302. package/out/repositories/module-repository.d.ts +37 -0
  303. package/out/repositories/module-repository.d.ts.map +1 -0
  304. package/out/repositories/module-repository.js +122 -0
  305. package/out/repositories/module-repository.js.map +1 -0
  306. package/out/repositories/navigation-repository.d.ts +117 -0
  307. package/out/repositories/navigation-repository.d.ts.map +1 -0
  308. package/out/repositories/navigation-repository.js +211 -0
  309. package/out/repositories/navigation-repository.js.map +1 -0
  310. package/out/repositories/symbol-repository.d.ts +37 -0
  311. package/out/repositories/symbol-repository.d.ts.map +1 -0
  312. package/out/repositories/symbol-repository.js +136 -0
  313. package/out/repositories/symbol-repository.js.map +1 -0
  314. package/out/services/cross-dimension-linker.d.ts +45 -0
  315. package/out/services/cross-dimension-linker.d.ts.map +1 -0
  316. package/out/services/cross-dimension-linker.js +98 -0
  317. package/out/services/cross-dimension-linker.js.map +1 -0
  318. package/out/services/importance-scorer.d.ts +47 -0
  319. package/out/services/importance-scorer.d.ts.map +1 -0
  320. package/out/services/importance-scorer.js +188 -0
  321. package/out/services/importance-scorer.js.map +1 -0
  322. package/out/services/ingestion-orchestrator.d.ts +49 -0
  323. package/out/services/ingestion-orchestrator.d.ts.map +1 -0
  324. package/out/services/ingestion-orchestrator.js +140 -0
  325. package/out/services/ingestion-orchestrator.js.map +1 -0
  326. package/out/services/navigation-builder.d.ts +29 -0
  327. package/out/services/navigation-builder.d.ts.map +1 -0
  328. package/out/services/navigation-builder.js +229 -0
  329. package/out/services/navigation-builder.js.map +1 -0
  330. package/out/services/system-model-builder.d.ts +40 -0
  331. package/out/services/system-model-builder.d.ts.map +1 -0
  332. package/out/services/system-model-builder.js +88 -0
  333. package/out/services/system-model-builder.js.map +1 -0
  334. package/out/ui/commands.d.ts +9 -0
  335. package/out/ui/commands.d.ts.map +1 -0
  336. package/out/ui/commands.js +123 -0
  337. package/out/ui/commands.js.map +1 -0
  338. package/out/ui/database-explorer.d.ts +27 -0
  339. package/out/ui/database-explorer.d.ts.map +1 -0
  340. package/out/ui/database-explorer.js +169 -0
  341. package/out/ui/database-explorer.js.map +1 -0
  342. package/out/ui/detail-view-provider.d.ts +86 -0
  343. package/out/ui/detail-view-provider.d.ts.map +1 -0
  344. package/out/ui/detail-view-provider.js +1037 -0
  345. package/out/ui/detail-view-provider.js.map +1 -0
  346. package/out/ui/search-provider.d.ts +30 -0
  347. package/out/ui/search-provider.d.ts.map +1 -0
  348. package/out/ui/search-provider.js +240 -0
  349. package/out/ui/search-provider.js.map +1 -0
  350. package/out/ui/status-provider.d.ts +17 -0
  351. package/out/ui/status-provider.d.ts.map +1 -0
  352. package/out/ui/status-provider.js +76 -0
  353. package/out/ui/status-provider.js.map +1 -0
  354. package/out/validators/consistency-validator.d.ts +37 -0
  355. package/out/validators/consistency-validator.d.ts.map +1 -0
  356. package/out/validators/consistency-validator.js +93 -0
  357. package/out/validators/consistency-validator.js.map +1 -0
  358. package/out/validators/integrity-validator.d.ts +45 -0
  359. package/out/validators/integrity-validator.d.ts.map +1 -0
  360. package/out/validators/integrity-validator.js +115 -0
  361. package/out/validators/integrity-validator.js.map +1 -0
  362. package/package.json +173 -0
  363. package/schemas/sqlite/001_initial_modules.sql +39 -0
  364. package/schemas/sqlite/002_initial_symbols.sql +46 -0
  365. package/schemas/sqlite/003_initial_dependencies.sql +51 -0
  366. package/schemas/sqlite/004_initial_adrs.sql +41 -0
  367. package/schemas/sqlite/005_initial_changes.sql +54 -0
  368. package/schemas/sqlite/006_initial_ingestion.sql +34 -0
  369. package/schemas/sqlite/006_vectors_schema.sql +73 -0
@@ -0,0 +1,272 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.ArchitectureMiningTool = void 0;
4
+ const cross_dimension_api_1 = require("../../api/cross-dimension-api");
5
+ const module_api_1 = require("../../api/module-api");
6
+ const symbol_api_1 = require("../../api/symbol-api");
7
+ const dependency_api_1 = require("../../api/dependency-api");
8
+ const adr_api_1 = require("../../api/adr-api");
9
+ /**
10
+ * MCP Tool: architecture_mining
11
+ * Mines architectural decisions from code structure and patterns.
12
+ * Compares with existing ADRs to identify undocumented decisions.
13
+ */
14
+ class ArchitectureMiningTool {
15
+ constructor(dbManager, idMapper) {
16
+ this.crossDimensionApi = new cross_dimension_api_1.CrossDimensionApi(dbManager, idMapper);
17
+ this.moduleApi = new module_api_1.ModuleApi(dbManager);
18
+ this.symbolApi = new symbol_api_1.SymbolApi(dbManager);
19
+ this.dependencyApi = new dependency_api_1.DependencyApi(dbManager);
20
+ this.adrApi = new adr_api_1.AdrApi(dbManager);
21
+ }
22
+ /**
23
+ * Executes the architecture_mining tool.
24
+ *
25
+ * @param args Arguments: pluginId, filePath (optional - specific file to analyze)
26
+ * @returns JSON string with mined architectural decisions
27
+ */
28
+ async execute(args) {
29
+ const decisions = [];
30
+ if (args.filePath) {
31
+ // Analyze specific file
32
+ const module = await this.moduleApi.getModuleByPath(args.filePath, args.pluginId);
33
+ if (module) {
34
+ const symbols = await this.symbolApi.getSymbolsByPath(args.filePath, args.pluginId);
35
+ const dependencies = await this.dependencyApi.getDependenciesByFromModule(args.filePath, args.pluginId);
36
+ const existingAdrs = await this.adrApi.getAdrsByFilePath(args.filePath, args.pluginId);
37
+ decisions.push(...this.analyzeModule(module, symbols, dependencies, existingAdrs));
38
+ }
39
+ }
40
+ else {
41
+ // Analyze entire system
42
+ const modules = await this.moduleApi.getAllModules(args.pluginId);
43
+ const allAdrs = await this.adrApi.getAllAdrs(args.pluginId);
44
+ // Pattern recognition across all modules
45
+ decisions.push(...this.recognizeSystemPatterns(modules, allAdrs));
46
+ }
47
+ return JSON.stringify({
48
+ analysis_date: new Date().toISOString(),
49
+ file_path: args.filePath || 'entire_system',
50
+ decisions: decisions.sort((a, b) => {
51
+ const confidenceOrder = { high: 3, medium: 2, low: 1 };
52
+ return confidenceOrder[b.confidence] - confidenceOrder[a.confidence];
53
+ }),
54
+ summary: {
55
+ total_decisions: decisions.length,
56
+ high_confidence: decisions.filter(d => d.confidence === 'high').length,
57
+ medium_confidence: decisions.filter(d => d.confidence === 'medium').length,
58
+ low_confidence: decisions.filter(d => d.confidence === 'low').length,
59
+ undocumented: decisions.filter(d => d.existing_adrs.length === 0).length
60
+ }
61
+ }, null, 2);
62
+ }
63
+ /**
64
+ * Analyzes a single module for architectural patterns.
65
+ */
66
+ analyzeModule(module, symbols, dependencies, existingAdrs) {
67
+ const decisions = [];
68
+ const filePath = module.file_path;
69
+ const fileName = filePath.split('/').pop() || '';
70
+ const existingAdrNumbers = existingAdrs.map(adr => adr.adr_number);
71
+ // Pattern: Repository Pattern
72
+ if (fileName.includes('repository') || fileName.includes('Repository')) {
73
+ decisions.push({
74
+ pattern: 'Repository Pattern',
75
+ evidence: [
76
+ `File name contains "repository": ${fileName}`,
77
+ `Module path: ${filePath}`,
78
+ `Symbols: ${symbols.length} symbols found`
79
+ ],
80
+ confidence: 'high',
81
+ suggested_adr_title: `Repository Pattern Implementation: ${filePath}`,
82
+ existing_adrs: existingAdrNumbers
83
+ });
84
+ }
85
+ // Pattern: API Layer
86
+ if (filePath.includes('/api/') || fileName.includes('api') || fileName.includes('Api')) {
87
+ decisions.push({
88
+ pattern: 'API Layer Pattern',
89
+ evidence: [
90
+ `File in /api/ directory or contains "api": ${filePath}`,
91
+ `Dependencies: ${dependencies.length} dependencies`,
92
+ `Symbols: ${symbols.length} symbols`
93
+ ],
94
+ confidence: 'high',
95
+ suggested_adr_title: `API Layer: ${filePath}`,
96
+ existing_adrs: existingAdrNumbers
97
+ });
98
+ }
99
+ // Pattern: Builder Pattern
100
+ if (fileName.includes('builder') || fileName.includes('Builder')) {
101
+ decisions.push({
102
+ pattern: 'Builder Pattern',
103
+ evidence: [
104
+ `File name contains "builder": ${fileName}`,
105
+ `Module path: ${filePath}`
106
+ ],
107
+ confidence: 'high',
108
+ suggested_adr_title: `Builder Pattern: ${filePath}`,
109
+ existing_adrs: existingAdrNumbers
110
+ });
111
+ }
112
+ // Pattern: Factory Pattern
113
+ if (fileName.includes('factory') || fileName.includes('Factory')) {
114
+ decisions.push({
115
+ pattern: 'Factory Pattern',
116
+ evidence: [
117
+ `File name contains "factory": ${fileName}`,
118
+ `Module path: ${filePath}`
119
+ ],
120
+ confidence: 'high',
121
+ suggested_adr_title: `Factory Pattern: ${filePath}`,
122
+ existing_adrs: existingAdrNumbers
123
+ });
124
+ }
125
+ // Pattern: Service Layer
126
+ if (filePath.includes('/services/')) {
127
+ decisions.push({
128
+ pattern: 'Service Layer Pattern',
129
+ evidence: [
130
+ `File in /services/ directory: ${filePath}`,
131
+ `Dependencies: ${dependencies.length} dependencies`
132
+ ],
133
+ confidence: 'medium',
134
+ suggested_adr_title: `Service Layer: ${filePath}`,
135
+ existing_adrs: existingAdrNumbers
136
+ });
137
+ }
138
+ // Pattern: Layered Architecture (based on directory structure)
139
+ const layers = this.detectLayers(filePath);
140
+ if (layers.length > 0) {
141
+ decisions.push({
142
+ pattern: 'Layered Architecture',
143
+ evidence: [
144
+ `Directory structure suggests layers: ${layers.join(' → ')}`,
145
+ `File path: ${filePath}`
146
+ ],
147
+ confidence: 'medium',
148
+ suggested_adr_title: `Layered Architecture: ${layers.join(' → ')}`,
149
+ existing_adrs: existingAdrNumbers
150
+ });
151
+ }
152
+ return decisions;
153
+ }
154
+ /**
155
+ * Recognizes system-wide patterns.
156
+ */
157
+ recognizeSystemPatterns(modules, allAdrs) {
158
+ const decisions = [];
159
+ // Count patterns across all modules
160
+ const repositoryCount = modules.filter(m => m.file_path.includes('repository') || m.file_path.includes('Repository')).length;
161
+ const apiCount = modules.filter(m => m.file_path.includes('/api/')).length;
162
+ const serviceCount = modules.filter(m => m.file_path.includes('/services/')).length;
163
+ // System-wide: Repository Pattern
164
+ if (repositoryCount > 0) {
165
+ decisions.push({
166
+ pattern: 'Repository Pattern (System-wide)',
167
+ evidence: [
168
+ `${repositoryCount} modules with "repository" in name/path`,
169
+ `Pattern used consistently across system`
170
+ ],
171
+ confidence: repositoryCount >= 3 ? 'high' : 'medium',
172
+ suggested_adr_title: 'Repository Pattern - System-wide Implementation',
173
+ existing_adrs: this.findRelevantAdrs(allAdrs, 'repository')
174
+ });
175
+ }
176
+ // System-wide: API Layer
177
+ if (apiCount > 0) {
178
+ decisions.push({
179
+ pattern: 'API Layer Pattern (System-wide)',
180
+ evidence: [
181
+ `${apiCount} modules in /api/ directory`,
182
+ `Clear separation of API layer`
183
+ ],
184
+ confidence: apiCount >= 3 ? 'high' : 'medium',
185
+ suggested_adr_title: 'API Layer - System-wide Architecture',
186
+ existing_adrs: this.findRelevantAdrs(allAdrs, 'api')
187
+ });
188
+ }
189
+ // System-wide: Service Layer
190
+ if (serviceCount > 0) {
191
+ decisions.push({
192
+ pattern: 'Service Layer Pattern (System-wide)',
193
+ evidence: [
194
+ `${serviceCount} modules in /services/ directory`,
195
+ `Business logic separated from API layer`
196
+ ],
197
+ confidence: serviceCount >= 3 ? 'high' : 'medium',
198
+ suggested_adr_title: 'Service Layer - System-wide Architecture',
199
+ existing_adrs: this.findRelevantAdrs(allAdrs, 'service')
200
+ });
201
+ }
202
+ // Detect layered architecture
203
+ const layerStructure = this.detectSystemLayers(modules);
204
+ if (layerStructure.layers.length > 0) {
205
+ decisions.push({
206
+ pattern: 'Layered Architecture (System-wide)',
207
+ evidence: [
208
+ `Detected layers: ${layerStructure.layers.join(' → ')}`,
209
+ `${layerStructure.moduleCount} modules follow this structure`
210
+ ],
211
+ confidence: layerStructure.moduleCount >= 10 ? 'high' : 'medium',
212
+ suggested_adr_title: 'Layered Architecture - System Structure',
213
+ existing_adrs: this.findRelevantAdrs(allAdrs, 'layer')
214
+ });
215
+ }
216
+ return decisions;
217
+ }
218
+ /**
219
+ * Detects layers from file path.
220
+ */
221
+ detectLayers(filePath) {
222
+ const layers = [];
223
+ const pathParts = filePath.split('/');
224
+ // Common layer patterns
225
+ if (pathParts.includes('core'))
226
+ layers.push('Core');
227
+ if (pathParts.includes('api'))
228
+ layers.push('API');
229
+ if (pathParts.includes('services'))
230
+ layers.push('Services');
231
+ if (pathParts.includes('repositories'))
232
+ layers.push('Repositories');
233
+ if (pathParts.includes('models'))
234
+ layers.push('Models');
235
+ if (pathParts.includes('ui'))
236
+ layers.push('UI');
237
+ if (pathParts.includes('mcp'))
238
+ layers.push('MCP');
239
+ return layers;
240
+ }
241
+ /**
242
+ * Detects system-wide layer structure.
243
+ */
244
+ detectSystemLayers(modules) {
245
+ const layerCounts = new Map();
246
+ for (const module of modules) {
247
+ const layers = this.detectLayers(module.file_path);
248
+ for (const layer of layers) {
249
+ layerCounts.set(layer, (layerCounts.get(layer) || 0) + 1);
250
+ }
251
+ }
252
+ // Sort by count and return top layers
253
+ const sortedLayers = Array.from(layerCounts.entries())
254
+ .sort((a, b) => b[1] - a[1])
255
+ .map(([layer]) => layer);
256
+ return {
257
+ layers: sortedLayers,
258
+ moduleCount: modules.length
259
+ };
260
+ }
261
+ /**
262
+ * Finds relevant ADRs by searching titles and content.
263
+ */
264
+ findRelevantAdrs(allAdrs, keyword) {
265
+ return allAdrs
266
+ .filter(adr => adr.title.toLowerCase().includes(keyword.toLowerCase()) ||
267
+ adr.content_markdown.toLowerCase().includes(keyword.toLowerCase()))
268
+ .map(adr => adr.adr_number);
269
+ }
270
+ }
271
+ exports.ArchitectureMiningTool = ArchitectureMiningTool;
272
+ //# sourceMappingURL=architecture-mining.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"architecture-mining.js","sourceRoot":"","sources":["../../../src/mcp/tools/architecture-mining.ts"],"names":[],"mappings":";;;AAEA,uEAAkE;AAClE,qDAAiD;AACjD,qDAAiD;AACjD,6DAAyD;AACzD,+CAA2C;AAE3C;;;;GAIG;AACH,MAAa,sBAAsB;IAO/B,YAAY,SAAyB,EAAE,QAAkB;QACrD,IAAI,CAAC,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;QACpE,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,SAAS,GAAG,IAAI,sBAAS,CAAC,SAAS,CAAC,CAAC;QAC1C,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,CAAC,SAAS,CAAC,CAAC;QAClD,IAAI,CAAC,MAAM,GAAG,IAAI,gBAAM,CAAC,SAAS,CAAC,CAAC;IACxC,CAAC;IAED;;;;;OAKG;IACI,KAAK,CAAC,OAAO,CAAC,IAGpB;QACG,MAAM,SAAS,GAMV,EAAE,CAAC;QAER,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YAChB,wBAAwB;YACxB,MAAM,MAAM,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,eAAe,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClF,IAAI,MAAM,EAAE,CAAC;gBACT,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACpF,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBACxG,MAAM,YAAY,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,iBAAiB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;gBAEvF,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,aAAa,CAAC,MAAM,EAAE,OAAO,EAAE,YAAY,EAAE,YAAY,CAAC,CAAC,CAAC;YACvF,CAAC;QACL,CAAC;aAAM,CAAC;YACJ,wBAAwB;YACxB,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,SAAS,CAAC,aAAa,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAClE,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,MAAM,CAAC,UAAU,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;YAE5D,yCAAyC;YACzC,SAAS,CAAC,IAAI,CAAC,GAAG,IAAI,CAAC,uBAAuB,CAAC,OAAO,EAAE,OAAO,CAAC,CAAC,CAAC;QACtE,CAAC;QAED,OAAO,IAAI,CAAC,SAAS,CAAC;YAClB,aAAa,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;YACvC,SAAS,EAAE,IAAI,CAAC,QAAQ,IAAI,eAAe;YAC3C,SAAS,EAAE,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;gBAC/B,MAAM,eAAe,GAAG,EAAE,IAAI,EAAE,CAAC,EAAE,MAAM,EAAE,CAAC,EAAE,GAAG,EAAE,CAAC,EAAE,CAAC;gBACvD,OAAO,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,GAAG,eAAe,CAAC,CAAC,CAAC,UAAU,CAAC,CAAC;YACzE,CAAC,CAAC;YACF,OAAO,EAAE;gBACL,eAAe,EAAE,SAAS,CAAC,MAAM;gBACjC,eAAe,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,MAAM,CAAC,CAAC,MAAM;gBACtE,iBAAiB,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,QAAQ,CAAC,CAAC,MAAM;gBAC1E,cAAc,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,UAAU,KAAK,KAAK,CAAC,CAAC,MAAM;gBACpE,YAAY,EAAE,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,aAAa,CAAC,MAAM,KAAK,CAAC,CAAC,CAAC,MAAM;aAC3E;SACJ,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IAChB,CAAC;IAED;;OAEG;IACK,aAAa,CACjB,MAAW,EACX,OAAc,EACd,YAAmB,EACnB,YAAmB;QAQnB,MAAM,SAAS,GAMV,EAAE,CAAC;QAER,MAAM,QAAQ,GAAG,MAAM,CAAC,SAAS,CAAC;QAClC,MAAM,QAAQ,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,GAAG,EAAE,IAAI,EAAE,CAAC;QACjD,MAAM,kBAAkB,GAAG,YAAY,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;QAEnE,8BAA8B;QAC9B,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YACrE,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,oBAAoB;gBAC7B,QAAQ,EAAE;oBACN,oCAAoC,QAAQ,EAAE;oBAC9C,gBAAgB,QAAQ,EAAE;oBAC1B,YAAY,OAAO,CAAC,MAAM,gBAAgB;iBAC7C;gBACD,UAAU,EAAE,MAAM;gBAClB,mBAAmB,EAAE,sCAAsC,QAAQ,EAAE;gBACrE,aAAa,EAAE,kBAAkB;aACpC,CAAC,CAAC;QACP,CAAC;QAED,qBAAqB;QACrB,IAAI,QAAQ,CAAC,QAAQ,CAAC,OAAO,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;YACrF,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,mBAAmB;gBAC5B,QAAQ,EAAE;oBACN,8CAA8C,QAAQ,EAAE;oBACxD,iBAAiB,YAAY,CAAC,MAAM,eAAe;oBACnD,YAAY,OAAO,CAAC,MAAM,UAAU;iBACvC;gBACD,UAAU,EAAE,MAAM;gBAClB,mBAAmB,EAAE,cAAc,QAAQ,EAAE;gBAC7C,aAAa,EAAE,kBAAkB;aACpC,CAAC,CAAC;QACP,CAAC;QAED,2BAA2B;QAC3B,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE;oBACN,iCAAiC,QAAQ,EAAE;oBAC3C,gBAAgB,QAAQ,EAAE;iBAC7B;gBACD,UAAU,EAAE,MAAM;gBAClB,mBAAmB,EAAE,oBAAoB,QAAQ,EAAE;gBACnD,aAAa,EAAE,kBAAkB;aACpC,CAAC,CAAC;QACP,CAAC;QAED,2BAA2B;QAC3B,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,IAAI,QAAQ,CAAC,QAAQ,CAAC,SAAS,CAAC,EAAE,CAAC;YAC/D,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,iBAAiB;gBAC1B,QAAQ,EAAE;oBACN,iCAAiC,QAAQ,EAAE;oBAC3C,gBAAgB,QAAQ,EAAE;iBAC7B;gBACD,UAAU,EAAE,MAAM;gBAClB,mBAAmB,EAAE,oBAAoB,QAAQ,EAAE;gBACnD,aAAa,EAAE,kBAAkB;aACpC,CAAC,CAAC;QACP,CAAC;QAED,yBAAyB;QACzB,IAAI,QAAQ,CAAC,QAAQ,CAAC,YAAY,CAAC,EAAE,CAAC;YAClC,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,uBAAuB;gBAChC,QAAQ,EAAE;oBACN,iCAAiC,QAAQ,EAAE;oBAC3C,iBAAiB,YAAY,CAAC,MAAM,eAAe;iBACtD;gBACD,UAAU,EAAE,QAAQ;gBACpB,mBAAmB,EAAE,kBAAkB,QAAQ,EAAE;gBACjD,aAAa,EAAE,kBAAkB;aACpC,CAAC,CAAC;QACP,CAAC;QAED,+DAA+D;QAC/D,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC3C,IAAI,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACpB,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,sBAAsB;gBAC/B,QAAQ,EAAE;oBACN,wCAAwC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBAC5D,cAAc,QAAQ,EAAE;iBAC3B;gBACD,UAAU,EAAE,QAAQ;gBACpB,mBAAmB,EAAE,yBAAyB,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;gBAClE,aAAa,EAAE,kBAAkB;aACpC,CAAC,CAAC;QACP,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,uBAAuB,CAC3B,OAAc,EACd,OAAc;QAQd,MAAM,SAAS,GAMV,EAAE,CAAC;QAER,oCAAoC;QACpC,MAAM,eAAe,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACvC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CAC3E,CAAC,MAAM,CAAC;QAET,MAAM,QAAQ,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAChC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,OAAO,CAAC,CAChC,CAAC,MAAM,CAAC;QAET,MAAM,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CACpC,CAAC,CAAC,SAAS,CAAC,QAAQ,CAAC,YAAY,CAAC,CACrC,CAAC,MAAM,CAAC;QAET,kCAAkC;QAClC,IAAI,eAAe,GAAG,CAAC,EAAE,CAAC;YACtB,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,kCAAkC;gBAC3C,QAAQ,EAAE;oBACN,GAAG,eAAe,yCAAyC;oBAC3D,yCAAyC;iBAC5C;gBACD,UAAU,EAAE,eAAe,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBACpD,mBAAmB,EAAE,iDAAiD;gBACtE,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,YAAY,CAAC;aAC9D,CAAC,CAAC;QACP,CAAC;QAED,yBAAyB;QACzB,IAAI,QAAQ,GAAG,CAAC,EAAE,CAAC;YACf,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,iCAAiC;gBAC1C,QAAQ,EAAE;oBACN,GAAG,QAAQ,6BAA6B;oBACxC,+BAA+B;iBAClC;gBACD,UAAU,EAAE,QAAQ,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBAC7C,mBAAmB,EAAE,sCAAsC;gBAC3D,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,KAAK,CAAC;aACvD,CAAC,CAAC;QACP,CAAC;QAED,6BAA6B;QAC7B,IAAI,YAAY,GAAG,CAAC,EAAE,CAAC;YACnB,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,qCAAqC;gBAC9C,QAAQ,EAAE;oBACN,GAAG,YAAY,kCAAkC;oBACjD,yCAAyC;iBAC5C;gBACD,UAAU,EAAE,YAAY,IAAI,CAAC,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBACjD,mBAAmB,EAAE,0CAA0C;gBAC/D,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,SAAS,CAAC;aAC3D,CAAC,CAAC;QACP,CAAC;QAED,8BAA8B;QAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QACxD,IAAI,cAAc,CAAC,MAAM,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC;YACnC,SAAS,CAAC,IAAI,CAAC;gBACX,OAAO,EAAE,oCAAoC;gBAC7C,QAAQ,EAAE;oBACN,oBAAoB,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,EAAE;oBACvD,GAAG,cAAc,CAAC,WAAW,gCAAgC;iBAChE;gBACD,UAAU,EAAE,cAAc,CAAC,WAAW,IAAI,EAAE,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,QAAQ;gBAChE,mBAAmB,EAAE,yCAAyC;gBAC9D,aAAa,EAAE,IAAI,CAAC,gBAAgB,CAAC,OAAO,EAAE,OAAO,CAAC;aACzD,CAAC,CAAC;QACP,CAAC;QAED,OAAO,SAAS,CAAC;IACrB,CAAC;IAED;;OAEG;IACK,YAAY,CAAC,QAAgB;QACjC,MAAM,MAAM,GAAa,EAAE,CAAC;QAC5B,MAAM,SAAS,GAAG,QAAQ,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC;QAEtC,wBAAwB;QACxB,IAAI,SAAS,CAAC,QAAQ,CAAC,MAAM,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAClD,IAAI,SAAS,CAAC,QAAQ,CAAC,UAAU,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;QAC5D,IAAI,SAAS,CAAC,QAAQ,CAAC,cAAc,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC;QACpE,IAAI,SAAS,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxD,IAAI,SAAS,CAAC,QAAQ,CAAC,IAAI,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;QAChD,IAAI,SAAS,CAAC,QAAQ,CAAC,KAAK,CAAC;YAAE,MAAM,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC;QAElD,OAAO,MAAM,CAAC;IAClB,CAAC;IAED;;OAEG;IACK,kBAAkB,CAAC,OAAc;QACrC,MAAM,WAAW,GAAG,IAAI,GAAG,EAAkB,CAAC;QAE9C,KAAK,MAAM,MAAM,IAAI,OAAO,EAAE,CAAC;YAC3B,MAAM,MAAM,GAAG,IAAI,CAAC,YAAY,CAAC,MAAM,CAAC,SAAS,CAAC,CAAC;YACnD,KAAK,MAAM,KAAK,IAAI,MAAM,EAAE,CAAC;gBACzB,WAAW,CAAC,GAAG,CAAC,KAAK,EAAE,CAAC,WAAW,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC;YAC9D,CAAC;QACL,CAAC;QAED,sCAAsC;QACtC,MAAM,YAAY,GAAG,KAAK,CAAC,IAAI,CAAC,WAAW,CAAC,OAAO,EAAE,CAAC;aACjD,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,CAAC,CAAC,CAAC;aAC3B,GAAG,CAAC,CAAC,CAAC,KAAK,CAAC,EAAE,EAAE,CAAC,KAAK,CAAC,CAAC;QAE7B,OAAO;YACH,MAAM,EAAE,YAAY;YACpB,WAAW,EAAE,OAAO,CAAC,MAAM;SAC9B,CAAC;IACN,CAAC;IAED;;OAEG;IACK,gBAAgB,CAAC,OAAc,EAAE,OAAe;QACpD,OAAO,OAAO;aACT,MAAM,CAAC,GAAG,CAAC,EAAE,CACV,GAAG,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC;YACvD,GAAG,CAAC,gBAAgB,CAAC,WAAW,EAAE,CAAC,QAAQ,CAAC,OAAO,CAAC,WAAW,EAAE,CAAC,CACrE;aACA,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,CAAC,UAAU,CAAC,CAAC;IACpC,CAAC;CACJ;AA9UD,wDA8UC"}
@@ -0,0 +1,9 @@
1
+ import { MultiDbManager } from '../../core/multi-db-manager';
2
+ /**
3
+ * Executes bootstrap tool.
4
+ * Returns bootstrap information for first-time system understanding.
5
+ */
6
+ export declare function executeBootstrap(args: {
7
+ pluginId: string;
8
+ }, dbManager: MultiDbManager): Promise<string>;
9
+ //# sourceMappingURL=bootstrap.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/bootstrap.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAG7D;;;GAGG;AACH,wBAAsB,gBAAgB,CAClC,IAAI,EAAE;IAAE,QAAQ,EAAE,MAAM,CAAA;CAAE,EAC1B,SAAS,EAAE,cAAc,GAC1B,OAAO,CAAC,MAAM,CAAC,CAIjB"}
@@ -0,0 +1,14 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeBootstrap = executeBootstrap;
4
+ const bootstrap_api_1 = require("../../api/bootstrap-api");
5
+ /**
6
+ * Executes bootstrap tool.
7
+ * Returns bootstrap information for first-time system understanding.
8
+ */
9
+ async function executeBootstrap(args, dbManager) {
10
+ const bootstrapApi = new bootstrap_api_1.BootstrapApi(dbManager);
11
+ const bootstrap = await bootstrapApi.getBootstrapInfo(args.pluginId);
12
+ return JSON.stringify(bootstrap, null, 2);
13
+ }
14
+ //# sourceMappingURL=bootstrap.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"bootstrap.js","sourceRoot":"","sources":["../../../src/mcp/tools/bootstrap.ts"],"names":[],"mappings":";;AAOA,4CAOC;AAbD,2DAAuD;AAEvD;;;GAGG;AACI,KAAK,UAAU,gBAAgB,CAClC,IAA0B,EAC1B,SAAyB;IAEzB,MAAM,YAAY,GAAG,IAAI,4BAAY,CAAC,SAAS,CAAC,CAAC;IACjD,MAAM,SAAS,GAAG,MAAM,YAAY,CAAC,gBAAgB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;IACrE,OAAO,IAAI,CAAC,SAAS,CAAC,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AAC9C,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { MultiDbManager } from '../../core/multi-db-manager';
2
+ import { IdMapper } from '../../core/id-mapper';
3
+ /**
4
+ * MCP Tool: cross_analysis
5
+ * Performs cross-dimension analysis
6
+ */
7
+ export declare class CrossAnalysisTool {
8
+ private crossDimensionApi;
9
+ constructor(dbManager: MultiDbManager, idMapper: IdMapper);
10
+ /**
11
+ * Executes the cross_analysis tool.
12
+ */
13
+ execute(args: {
14
+ filePath: string;
15
+ pluginId: string;
16
+ }): Promise<string>;
17
+ }
18
+ //# sourceMappingURL=cross-analysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-analysis.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/cross-analysis.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,iBAAiB;IAC1B,OAAO,CAAC,iBAAiB,CAAoB;gBAEjC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ;IAIzD;;OAEG;IACU,OAAO,CAAC,IAAI,EAAE;QAAE,QAAQ,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAKtF"}
@@ -0,0 +1,23 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.CrossAnalysisTool = void 0;
4
+ const cross_dimension_api_1 = require("../../api/cross-dimension-api");
5
+ /**
6
+ * MCP Tool: cross_analysis
7
+ * Performs cross-dimension analysis
8
+ */
9
+ class CrossAnalysisTool {
10
+ constructor(dbManager, idMapper) {
11
+ this.crossDimensionApi = new cross_dimension_api_1.CrossDimensionApi(dbManager, idMapper);
12
+ }
13
+ /**
14
+ * Executes the cross_analysis tool.
15
+ */
16
+ async execute(args) {
17
+ const adrs = await this.crossDimensionApi.getAdrsForFilePath(args.filePath, args.pluginId);
18
+ const symbols = await this.crossDimensionApi.getSymbolsForModule(args.filePath, args.pluginId);
19
+ return JSON.stringify({ adrs, symbols }, null, 2);
20
+ }
21
+ }
22
+ exports.CrossAnalysisTool = CrossAnalysisTool;
23
+ //# sourceMappingURL=cross-analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"cross-analysis.js","sourceRoot":"","sources":["../../../src/mcp/tools/cross-analysis.ts"],"names":[],"mappings":";;;AAAA,uEAAkE;AAIlE;;;GAGG;AACH,MAAa,iBAAiB;IAG1B,YAAY,SAAyB,EAAE,QAAkB;QACrD,IAAI,CAAC,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,SAAS,EAAE,QAAQ,CAAC,CAAC;IACxE,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,IAA4C;QAC7D,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC3F,MAAM,OAAO,GAAG,MAAM,IAAI,CAAC,iBAAiB,CAAC,mBAAmB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC/F,OAAO,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACtD,CAAC;CACJ;AAfD,8CAeC"}
@@ -0,0 +1,34 @@
1
+ import { MultiDbManager } from '../../core/multi-db-manager';
2
+ import { IdMapper } from '../../core/id-mapper';
3
+ /**
4
+ * MCP Tool: gap_analysis
5
+ * Finds documentation gaps by analyzing modules with many dependencies but few/no ADRs.
6
+ */
7
+ export declare class GapAnalysisTool {
8
+ private crossDimensionApi;
9
+ constructor(dbManager: MultiDbManager, idMapper: IdMapper);
10
+ /**
11
+ * Executes the gap_analysis tool.
12
+ *
13
+ * @param args Arguments: minDependencies (default: 5), pluginId
14
+ * @returns JSON string with gap analysis results
15
+ */
16
+ execute(args: {
17
+ minDependencies?: number;
18
+ pluginId: string;
19
+ limit?: number;
20
+ }): Promise<string>;
21
+ /**
22
+ * Calculates a gap score for prioritization.
23
+ * Higher score = more urgent to document.
24
+ *
25
+ * Formula: (dependency_count * 2) - (adr_count * 10)
26
+ * This prioritizes modules with many dependencies but few ADRs.
27
+ */
28
+ private calculateGapScore;
29
+ /**
30
+ * Generates recommendations based on gaps.
31
+ */
32
+ private generateRecommendations;
33
+ }
34
+ //# sourceMappingURL=gap-analysis.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gap-analysis.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/gap-analysis.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAEhD;;;GAGG;AACH,qBAAa,eAAe;IACxB,OAAO,CAAC,iBAAiB,CAAoB;gBAEjC,SAAS,EAAE,cAAc,EAAE,QAAQ,EAAE,QAAQ;IAIzD;;;;;OAKG;IACU,OAAO,CAAC,IAAI,EAAE;QACvB,eAAe,CAAC,EAAE,MAAM,CAAC;QACzB,QAAQ,EAAE,MAAM,CAAC;QACjB,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,GAAG,OAAO,CAAC,MAAM,CAAC;IA2DnB;;;;;;OAMG;IACH,OAAO,CAAC,iBAAiB;IAIzB;;OAEG;IACH,OAAO,CAAC,uBAAuB;CAkClC"}
@@ -0,0 +1,106 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.GapAnalysisTool = void 0;
4
+ const cross_dimension_api_1 = require("../../api/cross-dimension-api");
5
+ /**
6
+ * MCP Tool: gap_analysis
7
+ * Finds documentation gaps by analyzing modules with many dependencies but few/no ADRs.
8
+ */
9
+ class GapAnalysisTool {
10
+ constructor(dbManager, idMapper) {
11
+ this.crossDimensionApi = new cross_dimension_api_1.CrossDimensionApi(dbManager, idMapper);
12
+ }
13
+ /**
14
+ * Executes the gap_analysis tool.
15
+ *
16
+ * @param args Arguments: minDependencies (default: 5), pluginId
17
+ * @returns JSON string with gap analysis results
18
+ */
19
+ async execute(args) {
20
+ const minDeps = args.minDependencies || 5;
21
+ const limit = args.limit || 50;
22
+ // Build architectural view (combines X, W, Z dimensions)
23
+ const architecturalView = await this.crossDimensionApi.buildArchitecturalView(args.pluginId);
24
+ // Analyze gaps
25
+ const gaps = architecturalView
26
+ .filter(view => view.dependencies.length >= minDeps)
27
+ .map(view => ({
28
+ module: {
29
+ file_path: view.module.file_path,
30
+ content_hash: view.module.content_hash
31
+ },
32
+ dependency_count: view.dependencies.length,
33
+ adr_count: view.adrs.length,
34
+ adr_numbers: view.adrs.map(adr => adr.adr_number),
35
+ gap_score: this.calculateGapScore(view.dependencies.length, view.adrs.length),
36
+ has_adrs: view.adrs.length > 0
37
+ }))
38
+ .sort((a, b) => b.gap_score - a.gap_score) // Highest gap score first
39
+ .slice(0, limit);
40
+ // Separate into categories
41
+ const withoutAdrs = gaps.filter(g => !g.has_adrs);
42
+ const withFewAdrs = gaps.filter(g => g.has_adrs && g.adr_count < 2);
43
+ const wellDocumented = gaps.filter(g => g.has_adrs && g.adr_count >= 2);
44
+ // Calculate statistics
45
+ const stats = {
46
+ total_modules_analyzed: architecturalView.length,
47
+ modules_with_many_deps: gaps.length,
48
+ modules_without_adrs: withoutAdrs.length,
49
+ modules_with_few_adrs: withFewAdrs.length,
50
+ well_documented_modules: wellDocumented.length,
51
+ avg_dependencies: gaps.length > 0
52
+ ? Math.round(gaps.reduce((sum, g) => sum + g.dependency_count, 0) / gaps.length)
53
+ : 0,
54
+ avg_adrs: gaps.length > 0 && gaps.filter(g => g.has_adrs).length > 0
55
+ ? Math.round(gaps.filter(g => g.has_adrs).reduce((sum, g) => sum + g.adr_count, 0) / gaps.filter(g => g.has_adrs).length)
56
+ : 0
57
+ };
58
+ return JSON.stringify({
59
+ summary: {
60
+ min_dependencies_threshold: minDeps,
61
+ analysis_date: new Date().toISOString(),
62
+ statistics: stats
63
+ },
64
+ gaps: {
65
+ without_adrs: withoutAdrs,
66
+ with_few_adrs: withFewAdrs,
67
+ well_documented: wellDocumented
68
+ },
69
+ recommendations: this.generateRecommendations(withoutAdrs, withFewAdrs)
70
+ }, null, 2);
71
+ }
72
+ /**
73
+ * Calculates a gap score for prioritization.
74
+ * Higher score = more urgent to document.
75
+ *
76
+ * Formula: (dependency_count * 2) - (adr_count * 10)
77
+ * This prioritizes modules with many dependencies but few ADRs.
78
+ */
79
+ calculateGapScore(dependencyCount, adrCount) {
80
+ return (dependencyCount * 2) - (adrCount * 10);
81
+ }
82
+ /**
83
+ * Generates recommendations based on gaps.
84
+ */
85
+ generateRecommendations(withoutAdrs, withFewAdrs) {
86
+ const recommendations = [];
87
+ if (withoutAdrs.length > 0) {
88
+ recommendations.push(`🚨 ${withoutAdrs.length} Module ohne ADRs identifiziert. Diese sollten priorisiert werden:`);
89
+ withoutAdrs.slice(0, 5).forEach((gap, index) => {
90
+ recommendations.push(` ${index + 1}. ${gap.module.file_path} (${gap.dependency_count} Dependencies, Gap-Score: ${gap.gap_score})`);
91
+ });
92
+ }
93
+ if (withFewAdrs.length > 0) {
94
+ recommendations.push(`⚠️ ${withFewAdrs.length} Module mit nur wenigen ADRs. Erwägen Sie zusätzliche Dokumentation:`);
95
+ withFewAdrs.slice(0, 3).forEach((gap, index) => {
96
+ recommendations.push(` ${index + 1}. ${gap.module.file_path} (${gap.dependency_count} Dependencies, ${gap.adr_count} ADR(s))`);
97
+ });
98
+ }
99
+ if (recommendations.length === 0) {
100
+ recommendations.push('✅ Alle Module mit vielen Dependencies sind gut dokumentiert!');
101
+ }
102
+ return recommendations;
103
+ }
104
+ }
105
+ exports.GapAnalysisTool = GapAnalysisTool;
106
+ //# sourceMappingURL=gap-analysis.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"gap-analysis.js","sourceRoot":"","sources":["../../../src/mcp/tools/gap-analysis.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,10 @@
1
+ import { MultiDbManager } from '../../core/multi-db-manager';
2
+ /**
3
+ * Executes learning path tool.
4
+ * Generates guided learning path for understanding a topic.
5
+ */
6
+ export declare function executeLearningPath(args: {
7
+ topic: string;
8
+ pluginId: string;
9
+ }, dbManager: MultiDbManager): Promise<string>;
10
+ //# sourceMappingURL=learning-path.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-path.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/learning-path.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAK7D;;;GAGG;AACH,wBAAsB,mBAAmB,CACrC,IAAI,EAAE;IAAE,KAAK,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,CAAA;CAAE,EACzC,SAAS,EAAE,cAAc,GAC1B,OAAO,CAAC,MAAM,CAAC,CAOjB"}
@@ -0,0 +1,18 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.executeLearningPath = executeLearningPath;
4
+ const semantic_search_api_1 = require("../../api/semantic-search-api");
5
+ const learning_path_api_1 = require("../../api/learning-path-api");
6
+ const embedding_generator_1 = require("../../embedding/embedding-generator");
7
+ /**
8
+ * Executes learning path tool.
9
+ * Generates guided learning path for understanding a topic.
10
+ */
11
+ async function executeLearningPath(args, dbManager) {
12
+ const embeddingGenerator = new embedding_generator_1.EmbeddingGenerator();
13
+ const semanticSearchApi = new semantic_search_api_1.SemanticSearchApi(dbManager, embeddingGenerator);
14
+ const learningPathApi = new learning_path_api_1.LearningPathApi(dbManager, semanticSearchApi);
15
+ const path = await learningPathApi.generateLearningPath(args.topic, args.pluginId);
16
+ return JSON.stringify(path, null, 2);
17
+ }
18
+ //# sourceMappingURL=learning-path.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"learning-path.js","sourceRoot":"","sources":["../../../src/mcp/tools/learning-path.ts"],"names":[],"mappings":";;AASA,kDAUC;AAlBD,uEAAkE;AAClE,mEAA8D;AAC9D,6EAAyE;AAEzE;;;GAGG;AACI,KAAK,UAAU,mBAAmB,CACrC,IAAyC,EACzC,SAAyB;IAEzB,MAAM,kBAAkB,GAAG,IAAI,wCAAkB,EAAE,CAAC;IACpD,MAAM,iBAAiB,GAAG,IAAI,uCAAiB,CAAC,SAAS,EAAE,kBAAkB,CAAC,CAAC;IAC/E,MAAM,eAAe,GAAG,IAAI,mCAAe,CAAC,SAAS,EAAE,iBAAiB,CAAC,CAAC;IAE1E,MAAM,IAAI,GAAG,MAAM,eAAe,CAAC,oBAAoB,CAAC,IAAI,CAAC,KAAK,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;IACnF,OAAO,IAAI,CAAC,SAAS,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;AACzC,CAAC"}
@@ -0,0 +1,18 @@
1
+ import { MultiDbManager } from '../../core/multi-db-manager';
2
+ /**
3
+ * MCP Tool: query_dependencies
4
+ * Queries dependencies by module
5
+ */
6
+ export declare class QueryDependenciesTool {
7
+ private dependencyApi;
8
+ constructor(dbManager: MultiDbManager);
9
+ /**
10
+ * Executes the query_dependencies tool.
11
+ */
12
+ execute(args: {
13
+ fromModule?: string;
14
+ toModule?: string;
15
+ pluginId: string;
16
+ }): Promise<string>;
17
+ }
18
+ //# sourceMappingURL=query-dependencies.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-dependencies.d.ts","sourceRoot":"","sources":["../../../src/mcp/tools/query-dependencies.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,cAAc,EAAE,MAAM,6BAA6B,CAAC;AAE7D;;;GAGG;AACH,qBAAa,qBAAqB;IAC9B,OAAO,CAAC,aAAa,CAAgB;gBAEzB,SAAS,EAAE,cAAc;IAIrC;;OAEG;IACU,OAAO,CAAC,IAAI,EAAE;QAAE,UAAU,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,CAAC,EAAE,MAAM,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;CAW5G"}
@@ -0,0 +1,31 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryDependenciesTool = void 0;
4
+ const dependency_api_1 = require("../../api/dependency-api");
5
+ /**
6
+ * MCP Tool: query_dependencies
7
+ * Queries dependencies by module
8
+ */
9
+ class QueryDependenciesTool {
10
+ constructor(dbManager) {
11
+ this.dependencyApi = new dependency_api_1.DependencyApi(dbManager);
12
+ }
13
+ /**
14
+ * Executes the query_dependencies tool.
15
+ */
16
+ async execute(args) {
17
+ let dependencies;
18
+ if (args.fromModule) {
19
+ dependencies = await this.dependencyApi.getDependenciesByFromModule(args.fromModule, args.pluginId);
20
+ }
21
+ else if (args.toModule) {
22
+ dependencies = await this.dependencyApi.getDependenciesByToModule(args.toModule, args.pluginId);
23
+ }
24
+ else {
25
+ dependencies = await this.dependencyApi.getAllDependencies(args.pluginId);
26
+ }
27
+ return JSON.stringify(dependencies, null, 2);
28
+ }
29
+ }
30
+ exports.QueryDependenciesTool = QueryDependenciesTool;
31
+ //# sourceMappingURL=query-dependencies.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"query-dependencies.js","sourceRoot":"","sources":["../../../src/mcp/tools/query-dependencies.ts"],"names":[],"mappings":";;;AAAA,6DAAyD;AAGzD;;;GAGG;AACH,MAAa,qBAAqB;IAG9B,YAAY,SAAyB;QACjC,IAAI,CAAC,aAAa,GAAG,IAAI,8BAAa,CAAC,SAAS,CAAC,CAAC;IACtD,CAAC;IAED;;OAEG;IACI,KAAK,CAAC,OAAO,CAAC,IAAkE;QACnF,IAAI,YAAY,CAAC;QACjB,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YAClB,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,2BAA2B,CAAC,IAAI,CAAC,UAAU,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACxG,CAAC;aAAM,IAAI,IAAI,CAAC,QAAQ,EAAE,CAAC;YACvB,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,yBAAyB,CAAC,IAAI,CAAC,QAAQ,EAAE,IAAI,CAAC,QAAQ,CAAC,CAAC;QACpG,CAAC;aAAM,CAAC;YACJ,YAAY,GAAG,MAAM,IAAI,CAAC,aAAa,CAAC,kBAAkB,CAAC,IAAI,CAAC,QAAQ,CAAC,CAAC;QAC9E,CAAC;QACD,OAAO,IAAI,CAAC,SAAS,CAAC,YAAY,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC;IACjD,CAAC;CACJ;AArBD,sDAqBC"}
@@ -0,0 +1,17 @@
1
+ import { MultiDbManager } from '../../core/multi-db-manager';
2
+ /**
3
+ * MCP Tool: query_modules
4
+ * Queries modules by file path
5
+ */
6
+ export declare class QueryModulesTool {
7
+ private moduleApi;
8
+ constructor(dbManager: MultiDbManager);
9
+ /**
10
+ * Executes the query_modules tool.
11
+ */
12
+ execute(args: {
13
+ filePath: string;
14
+ pluginId: string;
15
+ }): Promise<string>;
16
+ }
17
+ //# sourceMappingURL=query-modules.d.ts.map