@egentica/codemap 0.1.5

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 (527) hide show
  1. package/LICENSE.md +165 -0
  2. package/README.md +479 -0
  3. package/dist/adapters/EgenticaMcpAdapter.d.ts +128 -0
  4. package/dist/adapters/EgenticaMcpAdapter.d.ts.map +1 -0
  5. package/dist/adapters/EgenticaMcpAdapter.js +218 -0
  6. package/dist/adapters/EgenticaMcpAdapter.js.map +1 -0
  7. package/dist/assist/AssistEngine.d.ts +107 -0
  8. package/dist/assist/AssistEngine.d.ts.map +1 -0
  9. package/dist/assist/AssistEngine.js +188 -0
  10. package/dist/assist/AssistEngine.js.map +1 -0
  11. package/dist/assist/AssistScorer.d.ts +91 -0
  12. package/dist/assist/AssistScorer.d.ts.map +1 -0
  13. package/dist/assist/AssistScorer.js +254 -0
  14. package/dist/assist/AssistScorer.js.map +1 -0
  15. package/dist/assist/PatternAggregator.d.ts +116 -0
  16. package/dist/assist/PatternAggregator.d.ts.map +1 -0
  17. package/dist/assist/PatternAggregator.js +311 -0
  18. package/dist/assist/PatternAggregator.js.map +1 -0
  19. package/dist/assist/RelevanceScorer.d.ts +104 -0
  20. package/dist/assist/RelevanceScorer.d.ts.map +1 -0
  21. package/dist/assist/RelevanceScorer.js +240 -0
  22. package/dist/assist/RelevanceScorer.js.map +1 -0
  23. package/dist/assist/index.d.ts +6 -0
  24. package/dist/assist/index.d.ts.map +1 -0
  25. package/dist/assist/index.js +9 -0
  26. package/dist/assist/index.js.map +1 -0
  27. package/dist/core/AnnotationStore.d.ts +101 -0
  28. package/dist/core/AnnotationStore.d.ts.map +1 -0
  29. package/dist/core/AnnotationStore.js +236 -0
  30. package/dist/core/AnnotationStore.js.map +1 -0
  31. package/dist/core/BackupManager.d.ts +92 -0
  32. package/dist/core/BackupManager.d.ts.map +1 -0
  33. package/dist/core/BackupManager.js +311 -0
  34. package/dist/core/BackupManager.js.map +1 -0
  35. package/dist/core/ChecklistStore.d.ts +66 -0
  36. package/dist/core/ChecklistStore.d.ts.map +1 -0
  37. package/dist/core/ChecklistStore.js +199 -0
  38. package/dist/core/ChecklistStore.js.map +1 -0
  39. package/dist/core/CodeMap.d.ts +614 -0
  40. package/dist/core/CodeMap.d.ts.map +1 -0
  41. package/dist/core/CodeMap.js +880 -0
  42. package/dist/core/CodeMap.js.map +1 -0
  43. package/dist/core/DisplayFilter.d.ts +83 -0
  44. package/dist/core/DisplayFilter.d.ts.map +1 -0
  45. package/dist/core/DisplayFilter.js +228 -0
  46. package/dist/core/DisplayFilter.js.map +1 -0
  47. package/dist/core/EventBus.d.ts +114 -0
  48. package/dist/core/EventBus.d.ts.map +1 -0
  49. package/dist/core/EventBus.js +192 -0
  50. package/dist/core/EventBus.js.map +1 -0
  51. package/dist/core/ExperienceStore.d.ts +170 -0
  52. package/dist/core/ExperienceStore.d.ts.map +1 -0
  53. package/dist/core/ExperienceStore.js +292 -0
  54. package/dist/core/ExperienceStore.js.map +1 -0
  55. package/dist/core/ExperienceTracker.d.ts +110 -0
  56. package/dist/core/ExperienceTracker.d.ts.map +1 -0
  57. package/dist/core/ExperienceTracker.js +291 -0
  58. package/dist/core/ExperienceTracker.js.map +1 -0
  59. package/dist/core/FileSystemGraph.d.ts +157 -0
  60. package/dist/core/FileSystemGraph.d.ts.map +1 -0
  61. package/dist/core/FileSystemGraph.js +316 -0
  62. package/dist/core/FileSystemGraph.js.map +1 -0
  63. package/dist/core/FileSystemIO.d.ts +222 -0
  64. package/dist/core/FileSystemIO.d.ts.map +1 -0
  65. package/dist/core/FileSystemIO.js +403 -0
  66. package/dist/core/FileSystemIO.js.map +1 -0
  67. package/dist/core/FuzzyMatcher.d.ts +51 -0
  68. package/dist/core/FuzzyMatcher.d.ts.map +1 -0
  69. package/dist/core/FuzzyMatcher.js +280 -0
  70. package/dist/core/FuzzyMatcher.js.map +1 -0
  71. package/dist/core/GroupStore.d.ts +114 -0
  72. package/dist/core/GroupStore.d.ts.map +1 -0
  73. package/dist/core/GroupStore.js +246 -0
  74. package/dist/core/GroupStore.js.map +1 -0
  75. package/dist/core/HelpRegistry.d.ts +116 -0
  76. package/dist/core/HelpRegistry.d.ts.map +1 -0
  77. package/dist/core/HelpRegistry.js +160 -0
  78. package/dist/core/HelpRegistry.js.map +1 -0
  79. package/dist/core/HintRegistry.d.ts +49 -0
  80. package/dist/core/HintRegistry.d.ts.map +1 -0
  81. package/dist/core/HintRegistry.js +81 -0
  82. package/dist/core/HintRegistry.js.map +1 -0
  83. package/dist/core/LabelStore.d.ts +88 -0
  84. package/dist/core/LabelStore.d.ts.map +1 -0
  85. package/dist/core/LabelStore.js +520 -0
  86. package/dist/core/LabelStore.js.map +1 -0
  87. package/dist/core/LineRangeWriter.d.ts +63 -0
  88. package/dist/core/LineRangeWriter.d.ts.map +1 -0
  89. package/dist/core/LineRangeWriter.js +179 -0
  90. package/dist/core/LineRangeWriter.js.map +1 -0
  91. package/dist/core/ParserRegistry.d.ts +70 -0
  92. package/dist/core/ParserRegistry.d.ts.map +1 -0
  93. package/dist/core/ParserRegistry.js +109 -0
  94. package/dist/core/ParserRegistry.js.map +1 -0
  95. package/dist/core/PluginRegistry.d.ts +120 -0
  96. package/dist/core/PluginRegistry.d.ts.map +1 -0
  97. package/dist/core/PluginRegistry.js +230 -0
  98. package/dist/core/PluginRegistry.js.map +1 -0
  99. package/dist/core/QueryEngine.d.ts +134 -0
  100. package/dist/core/QueryEngine.d.ts.map +1 -0
  101. package/dist/core/QueryEngine.js +211 -0
  102. package/dist/core/QueryEngine.js.map +1 -0
  103. package/dist/core/Scanner.d.ts +84 -0
  104. package/dist/core/Scanner.d.ts.map +1 -0
  105. package/dist/core/Scanner.js +184 -0
  106. package/dist/core/Scanner.js.map +1 -0
  107. package/dist/core/SessionTransactionLog.d.ts +138 -0
  108. package/dist/core/SessionTransactionLog.d.ts.map +1 -0
  109. package/dist/core/SessionTransactionLog.js +397 -0
  110. package/dist/core/SessionTransactionLog.js.map +1 -0
  111. package/dist/core/TargetParser.d.ts +85 -0
  112. package/dist/core/TargetParser.d.ts.map +1 -0
  113. package/dist/core/TargetParser.js +167 -0
  114. package/dist/core/TargetParser.js.map +1 -0
  115. package/dist/core/TargetResolver.d.ts +115 -0
  116. package/dist/core/TargetResolver.d.ts.map +1 -0
  117. package/dist/core/TargetResolver.js +237 -0
  118. package/dist/core/TargetResolver.js.map +1 -0
  119. package/dist/core/WriteSafetyGuard.d.ts +101 -0
  120. package/dist/core/WriteSafetyGuard.d.ts.map +1 -0
  121. package/dist/core/WriteSafetyGuard.js +265 -0
  122. package/dist/core/WriteSafetyGuard.js.map +1 -0
  123. package/dist/core/index.d.ts +38 -0
  124. package/dist/core/index.d.ts.map +1 -0
  125. package/dist/core/index.js +51 -0
  126. package/dist/core/index.js.map +1 -0
  127. package/dist/core/query/DependencyTraversal.d.ts +23 -0
  128. package/dist/core/query/DependencyTraversal.d.ts.map +1 -0
  129. package/dist/core/query/DependencyTraversal.js +55 -0
  130. package/dist/core/query/DependencyTraversal.js.map +1 -0
  131. package/dist/core/query/ResultProcessor.d.ts +20 -0
  132. package/dist/core/query/ResultProcessor.d.ts.map +1 -0
  133. package/dist/core/query/ResultProcessor.js +99 -0
  134. package/dist/core/query/ResultProcessor.js.map +1 -0
  135. package/dist/core/query/SymbolSearchEngine.d.ts +20 -0
  136. package/dist/core/query/SymbolSearchEngine.d.ts.map +1 -0
  137. package/dist/core/query/SymbolSearchEngine.js +109 -0
  138. package/dist/core/query/SymbolSearchEngine.js.map +1 -0
  139. package/dist/core/query/TextSearchEngine.d.ts +23 -0
  140. package/dist/core/query/TextSearchEngine.d.ts.map +1 -0
  141. package/dist/core/query/TextSearchEngine.js +69 -0
  142. package/dist/core/query/TextSearchEngine.js.map +1 -0
  143. package/dist/core/query/index.d.ts +11 -0
  144. package/dist/core/query/index.d.ts.map +1 -0
  145. package/dist/core/query/index.js +18 -0
  146. package/dist/core/query/index.js.map +1 -0
  147. package/dist/core/scan/DependencyResolver.d.ts +26 -0
  148. package/dist/core/scan/DependencyResolver.d.ts.map +1 -0
  149. package/dist/core/scan/DependencyResolver.js +81 -0
  150. package/dist/core/scan/DependencyResolver.js.map +1 -0
  151. package/dist/core/scan/DirectoryWalker.d.ts +39 -0
  152. package/dist/core/scan/DirectoryWalker.d.ts.map +1 -0
  153. package/dist/core/scan/DirectoryWalker.js +136 -0
  154. package/dist/core/scan/DirectoryWalker.js.map +1 -0
  155. package/dist/core/scan/IgnorePatternMatcher.d.ts +32 -0
  156. package/dist/core/scan/IgnorePatternMatcher.d.ts.map +1 -0
  157. package/dist/core/scan/IgnorePatternMatcher.js +120 -0
  158. package/dist/core/scan/IgnorePatternMatcher.js.map +1 -0
  159. package/dist/core/scan/index.d.ts +10 -0
  160. package/dist/core/scan/index.d.ts.map +1 -0
  161. package/dist/core/scan/index.js +16 -0
  162. package/dist/core/scan/index.js.map +1 -0
  163. package/dist/core/utils/packageDiscovery.d.ts +24 -0
  164. package/dist/core/utils/packageDiscovery.d.ts.map +1 -0
  165. package/dist/core/utils/packageDiscovery.js +37 -0
  166. package/dist/core/utils/packageDiscovery.js.map +1 -0
  167. package/dist/index.d.ts +18 -0
  168. package/dist/index.d.ts.map +1 -0
  169. package/dist/index.js +37 -0
  170. package/dist/index.js.map +1 -0
  171. package/dist/mcp/operations/annotations.d.ts +9 -0
  172. package/dist/mcp/operations/annotations.d.ts.map +1 -0
  173. package/dist/mcp/operations/annotations.js +66 -0
  174. package/dist/mcp/operations/annotations.js.map +1 -0
  175. package/dist/mcp/operations/files.d.ts +13 -0
  176. package/dist/mcp/operations/files.d.ts.map +1 -0
  177. package/dist/mcp/operations/files.js +173 -0
  178. package/dist/mcp/operations/files.js.map +1 -0
  179. package/dist/mcp/operations/graph.d.ts +10 -0
  180. package/dist/mcp/operations/graph.d.ts.map +1 -0
  181. package/dist/mcp/operations/graph.js +69 -0
  182. package/dist/mcp/operations/graph.js.map +1 -0
  183. package/dist/mcp/operations/groups.d.ts +55 -0
  184. package/dist/mcp/operations/groups.d.ts.map +1 -0
  185. package/dist/mcp/operations/groups.js +233 -0
  186. package/dist/mcp/operations/groups.js.map +1 -0
  187. package/dist/mcp/operations/help.d.ts +36 -0
  188. package/dist/mcp/operations/help.d.ts.map +1 -0
  189. package/dist/mcp/operations/help.js +322 -0
  190. package/dist/mcp/operations/help.js.map +1 -0
  191. package/dist/mcp/operations/session.d.ts +13 -0
  192. package/dist/mcp/operations/session.d.ts.map +1 -0
  193. package/dist/mcp/operations/session.js +169 -0
  194. package/dist/mcp/operations/session.js.map +1 -0
  195. package/dist/mcp/operations/writes.d.ts +14 -0
  196. package/dist/mcp/operations/writes.d.ts.map +1 -0
  197. package/dist/mcp/operations/writes.js +287 -0
  198. package/dist/mcp/operations/writes.js.map +1 -0
  199. package/dist/mcp/registry/ToolRegistry.d.ts +54 -0
  200. package/dist/mcp/registry/ToolRegistry.d.ts.map +1 -0
  201. package/dist/mcp/registry/ToolRegistry.js +219 -0
  202. package/dist/mcp/registry/ToolRegistry.js.map +1 -0
  203. package/dist/mcp/registry/context-guard.d.ts +13 -0
  204. package/dist/mcp/registry/context-guard.d.ts.map +1 -0
  205. package/dist/mcp/registry/context-guard.js +19 -0
  206. package/dist/mcp/registry/context-guard.js.map +1 -0
  207. package/dist/mcp/registry/schemas.d.ts +221 -0
  208. package/dist/mcp/registry/schemas.d.ts.map +1 -0
  209. package/dist/mcp/registry/schemas.js +217 -0
  210. package/dist/mcp/registry/schemas.js.map +1 -0
  211. package/dist/mcp/registry/types.d.ts +50 -0
  212. package/dist/mcp/registry/types.d.ts.map +1 -0
  213. package/dist/mcp/registry/types.js +5 -0
  214. package/dist/mcp/registry/types.js.map +1 -0
  215. package/dist/mcp/server.d.ts +35 -0
  216. package/dist/mcp/server.d.ts.map +1 -0
  217. package/dist/mcp/server.js +264 -0
  218. package/dist/mcp/server.js.map +1 -0
  219. package/dist/mcp/tools/annotations/add.tool.d.ts +10 -0
  220. package/dist/mcp/tools/annotations/add.tool.d.ts.map +1 -0
  221. package/dist/mcp/tools/annotations/add.tool.js +88 -0
  222. package/dist/mcp/tools/annotations/add.tool.js.map +1 -0
  223. package/dist/mcp/tools/annotations/edit.tool.d.ts +10 -0
  224. package/dist/mcp/tools/annotations/edit.tool.d.ts.map +1 -0
  225. package/dist/mcp/tools/annotations/edit.tool.js +92 -0
  226. package/dist/mcp/tools/annotations/edit.tool.js.map +1 -0
  227. package/dist/mcp/tools/annotations/remove.tool.d.ts +9 -0
  228. package/dist/mcp/tools/annotations/remove.tool.d.ts.map +1 -0
  229. package/dist/mcp/tools/annotations/remove.tool.js +87 -0
  230. package/dist/mcp/tools/annotations/remove.tool.js.map +1 -0
  231. package/dist/mcp/tools/annotations/search-annotations.tool.d.ts +11 -0
  232. package/dist/mcp/tools/annotations/search-annotations.tool.d.ts.map +1 -0
  233. package/dist/mcp/tools/annotations/search-annotations.tool.js +91 -0
  234. package/dist/mcp/tools/annotations/search-annotations.tool.js.map +1 -0
  235. package/dist/mcp/tools/backup/list.tool.d.ts +16 -0
  236. package/dist/mcp/tools/backup/list.tool.d.ts.map +1 -0
  237. package/dist/mcp/tools/backup/list.tool.js +48 -0
  238. package/dist/mcp/tools/backup/list.tool.js.map +1 -0
  239. package/dist/mcp/tools/backup/restore.tool.d.ts +15 -0
  240. package/dist/mcp/tools/backup/restore.tool.d.ts.map +1 -0
  241. package/dist/mcp/tools/backup/restore.tool.js +138 -0
  242. package/dist/mcp/tools/backup/restore.tool.js.map +1 -0
  243. package/dist/mcp/tools/checklist/add.tool.d.ts +17 -0
  244. package/dist/mcp/tools/checklist/add.tool.d.ts.map +1 -0
  245. package/dist/mcp/tools/checklist/add.tool.js +53 -0
  246. package/dist/mcp/tools/checklist/add.tool.js.map +1 -0
  247. package/dist/mcp/tools/checklist/list.tool.d.ts +11 -0
  248. package/dist/mcp/tools/checklist/list.tool.d.ts.map +1 -0
  249. package/dist/mcp/tools/checklist/list.tool.js +53 -0
  250. package/dist/mcp/tools/checklist/list.tool.js.map +1 -0
  251. package/dist/mcp/tools/checklist/remove.tool.d.ts +9 -0
  252. package/dist/mcp/tools/checklist/remove.tool.d.ts.map +1 -0
  253. package/dist/mcp/tools/checklist/remove.tool.js +63 -0
  254. package/dist/mcp/tools/checklist/remove.tool.js.map +1 -0
  255. package/dist/mcp/tools/graph/get-dependencies.tool.d.ts +8 -0
  256. package/dist/mcp/tools/graph/get-dependencies.tool.d.ts.map +1 -0
  257. package/dist/mcp/tools/graph/get-dependencies.tool.js +58 -0
  258. package/dist/mcp/tools/graph/get-dependencies.tool.js.map +1 -0
  259. package/dist/mcp/tools/graph/get-related.tool.d.ts +9 -0
  260. package/dist/mcp/tools/graph/get-related.tool.d.ts.map +1 -0
  261. package/dist/mcp/tools/graph/get-related.tool.js +63 -0
  262. package/dist/mcp/tools/graph/get-related.tool.js.map +1 -0
  263. package/dist/mcp/tools/graph/impact-analysis.tool.d.ts +9 -0
  264. package/dist/mcp/tools/graph/impact-analysis.tool.d.ts.map +1 -0
  265. package/dist/mcp/tools/graph/impact-analysis.tool.js +61 -0
  266. package/dist/mcp/tools/graph/impact-analysis.tool.js.map +1 -0
  267. package/dist/mcp/tools/graph/traverse.tool.d.ts +13 -0
  268. package/dist/mcp/tools/graph/traverse.tool.d.ts.map +1 -0
  269. package/dist/mcp/tools/graph/traverse.tool.js +59 -0
  270. package/dist/mcp/tools/graph/traverse.tool.js.map +1 -0
  271. package/dist/mcp/tools/groups/add.tool.d.ts +10 -0
  272. package/dist/mcp/tools/groups/add.tool.d.ts.map +1 -0
  273. package/dist/mcp/tools/groups/add.tool.js +85 -0
  274. package/dist/mcp/tools/groups/add.tool.js.map +1 -0
  275. package/dist/mcp/tools/groups/notate.tool.d.ts +11 -0
  276. package/dist/mcp/tools/groups/notate.tool.d.ts.map +1 -0
  277. package/dist/mcp/tools/groups/notate.tool.js +86 -0
  278. package/dist/mcp/tools/groups/notate.tool.js.map +1 -0
  279. package/dist/mcp/tools/groups/search.tool.d.ts +8 -0
  280. package/dist/mcp/tools/groups/search.tool.d.ts.map +1 -0
  281. package/dist/mcp/tools/groups/search.tool.js +81 -0
  282. package/dist/mcp/tools/groups/search.tool.js.map +1 -0
  283. package/dist/mcp/tools/io/append.tool.d.ts +10 -0
  284. package/dist/mcp/tools/io/append.tool.d.ts.map +1 -0
  285. package/dist/mcp/tools/io/append.tool.js +103 -0
  286. package/dist/mcp/tools/io/append.tool.js.map +1 -0
  287. package/dist/mcp/tools/io/create.tool.d.ts +11 -0
  288. package/dist/mcp/tools/io/create.tool.d.ts.map +1 -0
  289. package/dist/mcp/tools/io/create.tool.js +119 -0
  290. package/dist/mcp/tools/io/create.tool.js.map +1 -0
  291. package/dist/mcp/tools/io/delete.tool.d.ts +9 -0
  292. package/dist/mcp/tools/io/delete.tool.d.ts.map +1 -0
  293. package/dist/mcp/tools/io/delete.tool.js +129 -0
  294. package/dist/mcp/tools/io/delete.tool.js.map +1 -0
  295. package/dist/mcp/tools/io/get-annotations.tool.d.ts +10 -0
  296. package/dist/mcp/tools/io/get-annotations.tool.d.ts.map +1 -0
  297. package/dist/mcp/tools/io/get-annotations.tool.js +97 -0
  298. package/dist/mcp/tools/io/get-annotations.tool.js.map +1 -0
  299. package/dist/mcp/tools/io/get-symbols.tool.d.ts +9 -0
  300. package/dist/mcp/tools/io/get-symbols.tool.d.ts.map +1 -0
  301. package/dist/mcp/tools/io/get-symbols.tool.js +63 -0
  302. package/dist/mcp/tools/io/get-symbols.tool.js.map +1 -0
  303. package/dist/mcp/tools/io/list.tool.d.ts +8 -0
  304. package/dist/mcp/tools/io/list.tool.d.ts.map +1 -0
  305. package/dist/mcp/tools/io/list.tool.js +68 -0
  306. package/dist/mcp/tools/io/list.tool.js.map +1 -0
  307. package/dist/mcp/tools/io/peek.tool.d.ts +11 -0
  308. package/dist/mcp/tools/io/peek.tool.d.ts.map +1 -0
  309. package/dist/mcp/tools/io/peek.tool.js +74 -0
  310. package/dist/mcp/tools/io/peek.tool.js.map +1 -0
  311. package/dist/mcp/tools/io/read-multiple.tool.d.ts +9 -0
  312. package/dist/mcp/tools/io/read-multiple.tool.d.ts.map +1 -0
  313. package/dist/mcp/tools/io/read-multiple.tool.js +72 -0
  314. package/dist/mcp/tools/io/read-multiple.tool.js.map +1 -0
  315. package/dist/mcp/tools/io/read.tool.d.ts +13 -0
  316. package/dist/mcp/tools/io/read.tool.d.ts.map +1 -0
  317. package/dist/mcp/tools/io/read.tool.js +132 -0
  318. package/dist/mcp/tools/io/read.tool.js.map +1 -0
  319. package/dist/mcp/tools/io/rename.tool.d.ts +9 -0
  320. package/dist/mcp/tools/io/rename.tool.d.ts.map +1 -0
  321. package/dist/mcp/tools/io/rename.tool.js +101 -0
  322. package/dist/mcp/tools/io/rename.tool.js.map +1 -0
  323. package/dist/mcp/tools/io/replace-many.tool.d.ts +10 -0
  324. package/dist/mcp/tools/io/replace-many.tool.d.ts.map +1 -0
  325. package/dist/mcp/tools/io/replace-many.tool.js +114 -0
  326. package/dist/mcp/tools/io/replace-many.tool.js.map +1 -0
  327. package/dist/mcp/tools/io/replace-text.tool.d.ts +12 -0
  328. package/dist/mcp/tools/io/replace-text.tool.d.ts.map +1 -0
  329. package/dist/mcp/tools/io/replace-text.tool.js +213 -0
  330. package/dist/mcp/tools/io/replace-text.tool.js.map +1 -0
  331. package/dist/mcp/tools/io/write.tool.d.ts +10 -0
  332. package/dist/mcp/tools/io/write.tool.d.ts.map +1 -0
  333. package/dist/mcp/tools/io/write.tool.js +103 -0
  334. package/dist/mcp/tools/io/write.tool.js.map +1 -0
  335. package/dist/mcp/tools/labels/assign.tool.d.ts +16 -0
  336. package/dist/mcp/tools/labels/assign.tool.d.ts.map +1 -0
  337. package/dist/mcp/tools/labels/assign.tool.js +52 -0
  338. package/dist/mcp/tools/labels/assign.tool.js.map +1 -0
  339. package/dist/mcp/tools/labels/create.tool.d.ts +12 -0
  340. package/dist/mcp/tools/labels/create.tool.d.ts.map +1 -0
  341. package/dist/mcp/tools/labels/create.tool.js +51 -0
  342. package/dist/mcp/tools/labels/create.tool.js.map +1 -0
  343. package/dist/mcp/tools/labels/delete.tool.d.ts +9 -0
  344. package/dist/mcp/tools/labels/delete.tool.d.ts.map +1 -0
  345. package/dist/mcp/tools/labels/delete.tool.js +48 -0
  346. package/dist/mcp/tools/labels/delete.tool.js.map +1 -0
  347. package/dist/mcp/tools/labels/edit.tool.d.ts +13 -0
  348. package/dist/mcp/tools/labels/edit.tool.d.ts.map +1 -0
  349. package/dist/mcp/tools/labels/edit.tool.js +58 -0
  350. package/dist/mcp/tools/labels/edit.tool.js.map +1 -0
  351. package/dist/mcp/tools/labels/list.tool.d.ts +11 -0
  352. package/dist/mcp/tools/labels/list.tool.d.ts.map +1 -0
  353. package/dist/mcp/tools/labels/list.tool.js +47 -0
  354. package/dist/mcp/tools/labels/list.tool.js.map +1 -0
  355. package/dist/mcp/tools/labels/migrate.tool.d.ts +10 -0
  356. package/dist/mcp/tools/labels/migrate.tool.d.ts.map +1 -0
  357. package/dist/mcp/tools/labels/migrate.tool.js +50 -0
  358. package/dist/mcp/tools/labels/migrate.tool.js.map +1 -0
  359. package/dist/mcp/tools/labels/search.tool.d.ts +16 -0
  360. package/dist/mcp/tools/labels/search.tool.d.ts.map +1 -0
  361. package/dist/mcp/tools/labels/search.tool.js +55 -0
  362. package/dist/mcp/tools/labels/search.tool.js.map +1 -0
  363. package/dist/mcp/tools/labels/unassign.tool.d.ts +9 -0
  364. package/dist/mcp/tools/labels/unassign.tool.d.ts.map +1 -0
  365. package/dist/mcp/tools/labels/unassign.tool.js +49 -0
  366. package/dist/mcp/tools/labels/unassign.tool.js.map +1 -0
  367. package/dist/mcp/tools/search/find-by-name.tool.d.ts +8 -0
  368. package/dist/mcp/tools/search/find-by-name.tool.d.ts.map +1 -0
  369. package/dist/mcp/tools/search/find-by-name.tool.js +57 -0
  370. package/dist/mcp/tools/search/find-by-name.tool.js.map +1 -0
  371. package/dist/mcp/tools/search/find-relevant.tool.d.ts +9 -0
  372. package/dist/mcp/tools/search/find-relevant.tool.d.ts.map +1 -0
  373. package/dist/mcp/tools/search/find-relevant.tool.js +71 -0
  374. package/dist/mcp/tools/search/find-relevant.tool.js.map +1 -0
  375. package/dist/mcp/tools/search/scan.tool.d.ts +8 -0
  376. package/dist/mcp/tools/search/scan.tool.d.ts.map +1 -0
  377. package/dist/mcp/tools/search/scan.tool.js +103 -0
  378. package/dist/mcp/tools/search/scan.tool.js.map +1 -0
  379. package/dist/mcp/tools/search/search-elements.tool.d.ts +11 -0
  380. package/dist/mcp/tools/search/search-elements.tool.d.ts.map +1 -0
  381. package/dist/mcp/tools/search/search-elements.tool.js +71 -0
  382. package/dist/mcp/tools/search/search-elements.tool.js.map +1 -0
  383. package/dist/mcp/tools/search/search-in-files.tool.d.ts +14 -0
  384. package/dist/mcp/tools/search/search-in-files.tool.d.ts.map +1 -0
  385. package/dist/mcp/tools/search/search-in-files.tool.js +204 -0
  386. package/dist/mcp/tools/search/search-in-files.tool.js.map +1 -0
  387. package/dist/mcp/tools/search/search.tool.d.ts +25 -0
  388. package/dist/mcp/tools/search/search.tool.d.ts.map +1 -0
  389. package/dist/mcp/tools/search/search.tool.js +109 -0
  390. package/dist/mcp/tools/search/search.tool.js.map +1 -0
  391. package/dist/mcp/tools/session/audit.tool.d.ts +6 -0
  392. package/dist/mcp/tools/session/audit.tool.d.ts.map +1 -0
  393. package/dist/mcp/tools/session/audit.tool.js +64 -0
  394. package/dist/mcp/tools/session/audit.tool.js.map +1 -0
  395. package/dist/mcp/tools/session/close.tool.d.ts +11 -0
  396. package/dist/mcp/tools/session/close.tool.d.ts.map +1 -0
  397. package/dist/mcp/tools/session/close.tool.js +79 -0
  398. package/dist/mcp/tools/session/close.tool.js.map +1 -0
  399. package/dist/mcp/tools/session/execute-shell.tool.d.ts +11 -0
  400. package/dist/mcp/tools/session/execute-shell.tool.d.ts.map +1 -0
  401. package/dist/mcp/tools/session/execute-shell.tool.js +87 -0
  402. package/dist/mcp/tools/session/execute-shell.tool.js.map +1 -0
  403. package/dist/mcp/tools/session/help.tool.d.ts +8 -0
  404. package/dist/mcp/tools/session/help.tool.d.ts.map +1 -0
  405. package/dist/mcp/tools/session/help.tool.js +84 -0
  406. package/dist/mcp/tools/session/help.tool.js.map +1 -0
  407. package/dist/mcp/tools/session/list.tool.d.ts +9 -0
  408. package/dist/mcp/tools/session/list.tool.d.ts.map +1 -0
  409. package/dist/mcp/tools/session/list.tool.js +49 -0
  410. package/dist/mcp/tools/session/list.tool.js.map +1 -0
  411. package/dist/mcp/tools/session/next-session.tool.d.ts +8 -0
  412. package/dist/mcp/tools/session/next-session.tool.d.ts.map +1 -0
  413. package/dist/mcp/tools/session/next-session.tool.js +87 -0
  414. package/dist/mcp/tools/session/next-session.tool.js.map +1 -0
  415. package/dist/mcp/tools/session/orient.tool.d.ts +11 -0
  416. package/dist/mcp/tools/session/orient.tool.d.ts.map +1 -0
  417. package/dist/mcp/tools/session/orient.tool.js +239 -0
  418. package/dist/mcp/tools/session/orient.tool.js.map +1 -0
  419. package/dist/mcp/tools/session/read.tool.d.ts +8 -0
  420. package/dist/mcp/tools/session/read.tool.d.ts.map +1 -0
  421. package/dist/mcp/tools/session/read.tool.js +63 -0
  422. package/dist/mcp/tools/session/read.tool.js.map +1 -0
  423. package/dist/mcp/tools/session/reindex.tool.d.ts +6 -0
  424. package/dist/mcp/tools/session/reindex.tool.d.ts.map +1 -0
  425. package/dist/mcp/tools/session/reindex.tool.js +59 -0
  426. package/dist/mcp/tools/session/reindex.tool.js.map +1 -0
  427. package/dist/mcp/tools/session/start.tool.d.ts +8 -0
  428. package/dist/mcp/tools/session/start.tool.d.ts.map +1 -0
  429. package/dist/mcp/tools/session/start.tool.js +170 -0
  430. package/dist/mcp/tools/session/start.tool.js.map +1 -0
  431. package/dist/mcp/tools/session/stats.tool.d.ts +6 -0
  432. package/dist/mcp/tools/session/stats.tool.d.ts.map +1 -0
  433. package/dist/mcp/tools/session/stats.tool.js +46 -0
  434. package/dist/mcp/tools/session/stats.tool.js.map +1 -0
  435. package/dist/plugins/parser-typescript/index.d.ts +80 -0
  436. package/dist/plugins/parser-typescript/index.d.ts.map +1 -0
  437. package/dist/plugins/parser-typescript/index.js +467 -0
  438. package/dist/plugins/parser-typescript/index.js.map +1 -0
  439. package/dist/plugins/parser-vue/index.d.ts +20 -0
  440. package/dist/plugins/parser-vue/index.d.ts.map +1 -0
  441. package/dist/plugins/parser-vue/index.js +88 -0
  442. package/dist/plugins/parser-vue/index.js.map +1 -0
  443. package/dist/plugins/parser-vue/script-parser.d.ts +18 -0
  444. package/dist/plugins/parser-vue/script-parser.d.ts.map +1 -0
  445. package/dist/plugins/parser-vue/script-parser.js +100 -0
  446. package/dist/plugins/parser-vue/script-parser.js.map +1 -0
  447. package/dist/plugins/parser-vue/template-parser.d.ts +14 -0
  448. package/dist/plugins/parser-vue/template-parser.d.ts.map +1 -0
  449. package/dist/plugins/parser-vue/template-parser.js +95 -0
  450. package/dist/plugins/parser-vue/template-parser.js.map +1 -0
  451. package/dist/query/SymbolSearch.d.ts +56 -0
  452. package/dist/query/SymbolSearch.d.ts.map +1 -0
  453. package/dist/query/SymbolSearch.js +132 -0
  454. package/dist/query/SymbolSearch.js.map +1 -0
  455. package/dist/query/TextSearch.d.ts +47 -0
  456. package/dist/query/TextSearch.d.ts.map +1 -0
  457. package/dist/query/TextSearch.js +110 -0
  458. package/dist/query/TextSearch.js.map +1 -0
  459. package/dist/storage/NodeFsProvider.d.ts +148 -0
  460. package/dist/storage/NodeFsProvider.d.ts.map +1 -0
  461. package/dist/storage/NodeFsProvider.js +264 -0
  462. package/dist/storage/NodeFsProvider.js.map +1 -0
  463. package/dist/types/annotation.d.ts +79 -0
  464. package/dist/types/annotation.d.ts.map +1 -0
  465. package/dist/types/annotation.js +10 -0
  466. package/dist/types/annotation.js.map +1 -0
  467. package/dist/types/assist.d.ts +147 -0
  468. package/dist/types/assist.d.ts.map +1 -0
  469. package/dist/types/assist.js +12 -0
  470. package/dist/types/assist.js.map +1 -0
  471. package/dist/types/contracts/FileSystemProvider.d.ts +24 -0
  472. package/dist/types/contracts/FileSystemProvider.d.ts.map +1 -0
  473. package/dist/types/contracts/FileSystemProvider.js +9 -0
  474. package/dist/types/contracts/FileSystemProvider.js.map +1 -0
  475. package/dist/types/contracts/LanguageParser.d.ts +146 -0
  476. package/dist/types/contracts/LanguageParser.d.ts.map +1 -0
  477. package/dist/types/contracts/LanguageParser.js +43 -0
  478. package/dist/types/contracts/LanguageParser.js.map +1 -0
  479. package/dist/types/contracts/Plugin.d.ts +226 -0
  480. package/dist/types/contracts/Plugin.d.ts.map +1 -0
  481. package/dist/types/contracts/Plugin.js +21 -0
  482. package/dist/types/contracts/Plugin.js.map +1 -0
  483. package/dist/types/contracts/index.d.ts +10 -0
  484. package/dist/types/contracts/index.d.ts.map +1 -0
  485. package/dist/types/contracts/index.js +26 -0
  486. package/dist/types/contracts/index.js.map +1 -0
  487. package/dist/types/core.d.ts +170 -0
  488. package/dist/types/core.d.ts.map +1 -0
  489. package/dist/types/core.js +10 -0
  490. package/dist/types/core.js.map +1 -0
  491. package/dist/types/events.d.ts +29 -0
  492. package/dist/types/events.d.ts.map +1 -0
  493. package/dist/types/events.js +18 -0
  494. package/dist/types/events.js.map +1 -0
  495. package/dist/types/experience.d.ts +153 -0
  496. package/dist/types/experience.d.ts.map +1 -0
  497. package/dist/types/experience.js +9 -0
  498. package/dist/types/experience.js.map +1 -0
  499. package/dist/types/graph.d.ts +35 -0
  500. package/dist/types/graph.d.ts.map +1 -0
  501. package/dist/types/graph.js +8 -0
  502. package/dist/types/graph.js.map +1 -0
  503. package/dist/types/index.d.ts +17 -0
  504. package/dist/types/index.d.ts.map +1 -0
  505. package/dist/types/index.js +33 -0
  506. package/dist/types/index.js.map +1 -0
  507. package/dist/types/label.d.ts +150 -0
  508. package/dist/types/label.d.ts.map +1 -0
  509. package/dist/types/label.js +9 -0
  510. package/dist/types/label.js.map +1 -0
  511. package/dist/types/query.d.ts +104 -0
  512. package/dist/types/query.d.ts.map +1 -0
  513. package/dist/types/query.js +11 -0
  514. package/dist/types/query.js.map +1 -0
  515. package/dist/types/response.d.ts +133 -0
  516. package/dist/types/response.d.ts.map +1 -0
  517. package/dist/types/response.js +60 -0
  518. package/dist/types/response.js.map +1 -0
  519. package/dist/types/target.d.ts +68 -0
  520. package/dist/types/target.d.ts.map +1 -0
  521. package/dist/types/target.js +11 -0
  522. package/dist/types/target.js.map +1 -0
  523. package/dist/utils/version.d.ts +9 -0
  524. package/dist/utils/version.d.ts.map +1 -0
  525. package/dist/utils/version.js +30 -0
  526. package/dist/utils/version.js.map +1 -0
  527. package/package.json +53 -0
@@ -0,0 +1,230 @@
1
+ "use strict";
2
+ /**
3
+ * PluginRegistry - Central plugin management for CodeMap.
4
+ *
5
+ * Discovers, registers, and manages plugin lifecycle.
6
+ * Plugins register hooks via the CodeMapHost interface.
7
+ *
8
+ * Architecture:
9
+ * - Plugins register via registry.register(plugin)
10
+ * - Each plugin receives CodeMapHost interface to hook into events
11
+ * - Registry tracks all registered plugins for lifecycle management
12
+ * - Supports plugin unregistration for cleanup
13
+ *
14
+ * @example
15
+ * ```typescript
16
+ * const registry = new PluginRegistry(codemap);
17
+ *
18
+ * // Register a language parser
19
+ * registry.register(new TypeScriptParser());
20
+ *
21
+ * // Register TimeWarp plugin
22
+ * registry.register(new TimeWarpPlugin());
23
+ *
24
+ * // Cleanup on shutdown
25
+ * await registry.unregisterAll();
26
+ * ```
27
+ */
28
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
29
+ if (k2 === undefined) k2 = k;
30
+ var desc = Object.getOwnPropertyDescriptor(m, k);
31
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
32
+ desc = { enumerable: true, get: function() { return m[k]; } };
33
+ }
34
+ Object.defineProperty(o, k2, desc);
35
+ }) : (function(o, m, k, k2) {
36
+ if (k2 === undefined) k2 = k;
37
+ o[k2] = m[k];
38
+ }));
39
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
40
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
41
+ }) : function(o, v) {
42
+ o["default"] = v;
43
+ });
44
+ var __importStar = (this && this.__importStar) || (function () {
45
+ var ownKeys = function(o) {
46
+ ownKeys = Object.getOwnPropertyNames || function (o) {
47
+ var ar = [];
48
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
49
+ return ar;
50
+ };
51
+ return ownKeys(o);
52
+ };
53
+ return function (mod) {
54
+ if (mod && mod.__esModule) return mod;
55
+ var result = {};
56
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
57
+ __setModuleDefault(result, mod);
58
+ return result;
59
+ };
60
+ })();
61
+ Object.defineProperty(exports, "__esModule", { value: true });
62
+ exports.PluginRegistry = void 0;
63
+ const packageDiscovery_1 = require("./utils/packageDiscovery");
64
+ class PluginRegistry {
65
+ plugins;
66
+ codemap;
67
+ constructor(codemap) {
68
+ this.plugins = new Map();
69
+ this.codemap = codemap;
70
+ }
71
+ /**
72
+ * Auto-discover and register all available plugin packages.
73
+ *
74
+ * Loads plugins in two phases:
75
+ * 1. First-party plugins: Auto-discover @egentica/codemap-plugin-* packages
76
+ * 2. Third-party plugins: Load from config.plugins array
77
+ *
78
+ * Silently skips packages that are not installed.
79
+ *
80
+ * @param config - Configuration object (may contain plugins array)
81
+ */
82
+ async autoloadPlugins(config = {}) {
83
+ // 1. Auto-discover first-party plugins
84
+ const firstPartyPlugins = await (0, packageDiscovery_1.discoverFirstPartyPackages)('codemap-plugin');
85
+ // 2. Load third-party plugins from config
86
+ const thirdPartyPlugins = config.plugins?.paths || [];
87
+ // 3. Merge and load all plugins
88
+ const allPlugins = [...firstPartyPlugins, ...thirdPartyPlugins];
89
+ for (const pkg of allPlugins) {
90
+ try {
91
+ const module = await Promise.resolve(`${pkg}`).then(s => __importStar(require(s)));
92
+ const PluginClass = module.default;
93
+ const plugin = new PluginClass();
94
+ await this.register(plugin);
95
+ }
96
+ catch {
97
+ // Plugin not installed - skip silently
98
+ }
99
+ }
100
+ }
101
+ /**
102
+ * Register a plugin with CodeMap.
103
+ *
104
+ * Calls plugin.register(codemap) to let the plugin hook into events.
105
+ * If plugin has initialize() method, calls it for async setup.
106
+ * Plugin name must be unique.
107
+ *
108
+ * @param plugin - Plugin to register
109
+ * @throws Error if plugin with same name already registered
110
+ */
111
+ async register(plugin) {
112
+ if (this.plugins.has(plugin.name)) {
113
+ throw new Error(`Plugin '${plugin.name}' is already registered. ` +
114
+ `Each plugin name must be unique.`);
115
+ }
116
+ // Let plugin register its hooks (sync)
117
+ plugin.register(this.codemap);
118
+ // Initialize plugin data if supported (async)
119
+ if (plugin.initialize && typeof plugin.initialize === 'function') {
120
+ await plugin.initialize(this.codemap);
121
+ }
122
+ // Track registration
123
+ this.plugins.set(plugin.name, {
124
+ plugin,
125
+ registeredAt: Date.now()
126
+ });
127
+ }
128
+ /**
129
+ * Unregister a plugin by name.
130
+ *
131
+ * Calls plugin.unregister() if defined.
132
+ * Removes plugin from registry.
133
+ *
134
+ * Note: Does NOT automatically remove event handlers.
135
+ * Plugins are responsible for cleanup in their unregister() method.
136
+ *
137
+ * @param name - Plugin name to unregister
138
+ * @returns True if plugin was found and unregistered
139
+ */
140
+ async unregister(name) {
141
+ const metadata = this.plugins.get(name);
142
+ if (!metadata)
143
+ return false;
144
+ // Call plugin cleanup if defined
145
+ if (metadata.plugin.unregister) {
146
+ await metadata.plugin.unregister();
147
+ }
148
+ // Remove from registry
149
+ this.plugins.delete(name);
150
+ return true;
151
+ }
152
+ /**
153
+ * Unregister all plugins.
154
+ *
155
+ * Calls unregister() on each plugin sequentially.
156
+ * Useful for shutdown/cleanup.
157
+ */
158
+ async unregisterAll() {
159
+ const names = Array.from(this.plugins.keys());
160
+ for (const name of names) {
161
+ await this.unregister(name);
162
+ }
163
+ }
164
+ /**
165
+ * Check if a plugin is registered.
166
+ *
167
+ * @param name - Plugin name to check
168
+ * @returns True if plugin is registered
169
+ */
170
+ has(name) {
171
+ return this.plugins.has(name);
172
+ }
173
+ /**
174
+ * Get a registered plugin by name.
175
+ *
176
+ * @param name - Plugin name
177
+ * @returns Plugin instance or undefined
178
+ */
179
+ get(name) {
180
+ return this.plugins.get(name)?.plugin;
181
+ }
182
+ /**
183
+ * Get all registered plugin names.
184
+ *
185
+ * @returns Array of plugin names
186
+ */
187
+ getRegisteredPlugins() {
188
+ return Array.from(this.plugins.keys());
189
+ }
190
+ /**
191
+ * Get plugin count.
192
+ *
193
+ * @returns Number of registered plugins
194
+ */
195
+ get count() {
196
+ return this.plugins.size;
197
+ }
198
+ /**
199
+ * Get plugin metadata (name, version, registration time).
200
+ *
201
+ * @returns Array of plugin metadata
202
+ */
203
+ getPluginInfo() {
204
+ return Array.from(this.plugins.values()).map(metadata => ({
205
+ name: metadata.plugin.name,
206
+ version: metadata.plugin.version,
207
+ registeredAt: metadata.registeredAt
208
+ }));
209
+ }
210
+ /**
211
+ * Get a language parser that can handle the given file.
212
+ *
213
+ * @param filePath - File path to find parser for
214
+ * @returns LanguageParser instance or undefined
215
+ */
216
+ getParserForFile(filePath) {
217
+ for (const metadata of this.plugins.values()) {
218
+ const plugin = metadata.plugin;
219
+ // Check if this is a LanguageParser plugin with canParse method
220
+ if (plugin.canParse && typeof plugin.canParse === 'function') {
221
+ if (plugin.canParse(filePath)) {
222
+ return plugin;
223
+ }
224
+ }
225
+ }
226
+ return undefined;
227
+ }
228
+ }
229
+ exports.PluginRegistry = PluginRegistry;
230
+ //# sourceMappingURL=PluginRegistry.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PluginRegistry.js","sourceRoot":"","sources":["../../src/core/PluginRegistry.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,134 @@
1
+ /**
2
+ * QueryEngine - Orchestrator for search and graph traversal.
3
+ *
4
+ * Thin orchestrator that delegates to strategy classes:
5
+ * - TextSearchEngine: File path matching
6
+ * - SymbolSearchEngine: Symbol name matching
7
+ * - ResultProcessor: Post-processing and enrichment
8
+ * - DependencyTraversal: Graph traversal operations
9
+ *
10
+ * Architecture:
11
+ * - Pure query layer — no I/O, no side effects
12
+ * - Delegates all search logic to strategies
13
+ * - Coordinates multiple search modes
14
+ * - Manages result pagination and formatting
15
+ *
16
+ * @codemap.policy No file operations — graph queries only.
17
+ * @codemap.policy All search methods return sorted results (highest relevance first).
18
+ *
19
+ * @example
20
+ * ```typescript
21
+ * const query = new QueryEngine(config);
22
+ *
23
+ * // Text search
24
+ * const results = query.search({ query: 'auth login', mode: 'text' });
25
+ *
26
+ * // Symbol search
27
+ * const symbols = query.search({ query: 'handleLogin', mode: 'symbol' });
28
+ *
29
+ * // Find dependencies
30
+ * const importers = query.findImporters('src/auth/login.ts');
31
+ * ```
32
+ */
33
+ import type { FileSystemGraph } from './FileSystemGraph';
34
+ import type { FileEntry } from '../types/core';
35
+ import type { SearchRequest, SearchResponse, SearchResult } from '../types/query';
36
+ import type { EventBus } from './EventBus';
37
+ import { HintRegistry } from './HintRegistry';
38
+ /**
39
+ * Configuration for QueryEngine.
40
+ */
41
+ export interface QueryEngineConfig {
42
+ /**
43
+ * The graph to query against.
44
+ */
45
+ graph: FileSystemGraph;
46
+ /**
47
+ * Default max results.
48
+ * Defaults to 5.
49
+ */
50
+ defaultMaxResults?: number;
51
+ /**
52
+ * Optional: GroupStore for including group membership in search results.
53
+ */
54
+ groupStore?: any;
55
+ /**
56
+ * Optional: HintRegistry for contextual hints.
57
+ */
58
+ hintRegistry?: HintRegistry;
59
+ /**
60
+ * Optional: EventBus for emitting search events (plugin hooks).
61
+ */
62
+ eventBus?: EventBus;
63
+ }
64
+ export declare class QueryEngine {
65
+ private graph;
66
+ private defaultMaxResults;
67
+ private defaultMaxSymbolsPerFile;
68
+ private groupStore?;
69
+ private hintRegistry;
70
+ private eventBus?;
71
+ private textSearch;
72
+ private symbolSearch;
73
+ private resultProcessor;
74
+ private dependencyTraversal;
75
+ constructor(config: QueryEngineConfig);
76
+ /**
77
+ * Execute a search query.
78
+ *
79
+ * Supports multiple search modes:
80
+ * - text: Keyword matching in file paths
81
+ * - symbol: Symbol name matching
82
+ * - hybrid: Combined text + symbol search
83
+ *
84
+ * @param request - Search request
85
+ * @returns Search results sorted by relevance
86
+ */
87
+ search(request: SearchRequest): SearchResponse;
88
+ /**
89
+ * Find files by name pattern (supports * wildcard).
90
+ */
91
+ findByName(pattern: string): FileEntry[];
92
+ /**
93
+ * Find files relevant to a task description.
94
+ * Uses keyword extraction + relevance scoring.
95
+ */
96
+ findRelevant(task: string, maxResults?: number): SearchResult[];
97
+ /**
98
+ * Find all files that import a given file.
99
+ */
100
+ findImporters(relativePath: string): FileEntry[];
101
+ /**
102
+ * Find all files imported by a given file.
103
+ */
104
+ findImports(relativePath: string): FileEntry[];
105
+ /**
106
+ * Get related files (imports + importers).
107
+ */
108
+ getRelated(relativePath: string): {
109
+ imports: FileEntry[];
110
+ importers: FileEntry[];
111
+ };
112
+ /**
113
+ * Traverse dependency graph with BFS.
114
+ */
115
+ traverse(startPath: string, direction: 'imports' | 'importers', maxDepth?: number): FileEntry[];
116
+ /**
117
+ * Search for DOM elements in template files.
118
+ *
119
+ * @param query - Element name or tag to search for
120
+ * @param tag - Optional tag filter
121
+ * @param hasId - Optional ID filter (true = explicit IDs, false = auto-numbered)
122
+ * @param maxResults - Max results to return
123
+ * @returns Element matches with file context
124
+ */
125
+ searchElements(query: string, options?: {
126
+ tag?: string;
127
+ hasId?: boolean;
128
+ maxResults?: number;
129
+ }): Array<{
130
+ element: any;
131
+ file: FileEntry;
132
+ }>;
133
+ }
134
+ //# sourceMappingURL=QueryEngine.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryEngine.d.ts","sourceRoot":"","sources":["../../src/core/QueryEngine.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA+BG;AACH,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,mBAAmB,CAAC;AACzD,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EACd,YAAY,EACb,MAAM,gBAAgB,CAAC;AACxB,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAC3C,OAAO,EAAE,YAAY,EAAE,MAAM,gBAAgB,CAAC;AAM9C;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC;;OAEG;IACH,KAAK,EAAE,eAAe,CAAC;IAEvB;;;OAGG;IACH,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAE3B;;OAEG;IACH,UAAU,CAAC,EAAE,GAAG,CAAC;IAEjB;;OAEG;IACH,YAAY,CAAC,EAAE,YAAY,CAAC;IAE5B;;OAEG;IACH,QAAQ,CAAC,EAAE,QAAQ,CAAC;CACrB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,KAAK,CAAkB;IAC/B,OAAO,CAAC,iBAAiB,CAAS;IAClC,OAAO,CAAC,wBAAwB,CAAS;IACzC,OAAO,CAAC,UAAU,CAAC,CAAM;IACzB,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,QAAQ,CAAC,CAAW;IAG5B,OAAO,CAAC,UAAU,CAAmB;IACrC,OAAO,CAAC,YAAY,CAAqB;IACzC,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,mBAAmB,CAAsB;gBAErC,MAAM,EAAE,iBAAiB;IAoBrC;;;;;;;;;;OAUG;IACH,MAAM,CAAC,OAAO,EAAE,aAAa,GAAG,cAAc;IA2G9C;;OAEG;IACH,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,SAAS,EAAE;IAIxC;;;OAGG;IACH,YAAY,CAAC,IAAI,EAAE,MAAM,EAAE,UAAU,CAAC,EAAE,MAAM,GAAG,YAAY,EAAE;IAS/D;;OAEG;IACH,aAAa,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE;IAIhD;;OAEG;IACH,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,SAAS,EAAE;IAI9C;;OAEG;IACH,UAAU,CAAC,YAAY,EAAE,MAAM,GAAG;QAAE,OAAO,EAAE,SAAS,EAAE,CAAC;QAAC,SAAS,EAAE,SAAS,EAAE,CAAA;KAAE;IAIlF;;OAEG;IACH,QAAQ,CACN,SAAS,EAAE,MAAM,EACjB,SAAS,EAAE,SAAS,GAAG,WAAW,EAClC,QAAQ,GAAE,MAAU,GACnB,SAAS,EAAE;IAId;;;;;;;;OAQG;IACH,cAAc,CACZ,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE;QACR,GAAG,CAAC,EAAE,MAAM,CAAC;QACb,KAAK,CAAC,EAAE,OAAO,CAAC;QAChB,UAAU,CAAC,EAAE,MAAM,CAAC;KACrB,GACA,KAAK,CAAC;QAAE,OAAO,EAAE,GAAG,CAAC;QAAC,IAAI,EAAE,SAAS,CAAA;KAAE,CAAC;CA4B5C"}
@@ -0,0 +1,211 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.QueryEngine = void 0;
4
+ const HintRegistry_1 = require("./HintRegistry");
5
+ const TextSearchEngine_1 = require("./query/TextSearchEngine");
6
+ const SymbolSearchEngine_1 = require("./query/SymbolSearchEngine");
7
+ const ResultProcessor_1 = require("./query/ResultProcessor");
8
+ const DependencyTraversal_1 = require("./query/DependencyTraversal");
9
+ class QueryEngine {
10
+ graph;
11
+ defaultMaxResults;
12
+ defaultMaxSymbolsPerFile;
13
+ groupStore;
14
+ hintRegistry;
15
+ eventBus;
16
+ // Strategy instances
17
+ textSearch;
18
+ symbolSearch;
19
+ resultProcessor;
20
+ dependencyTraversal;
21
+ constructor(config) {
22
+ this.graph = config.graph;
23
+ this.defaultMaxResults = config.defaultMaxResults || 5; // Default to 5 files
24
+ this.defaultMaxSymbolsPerFile = 5; // Default to 5 symbols per file
25
+ this.groupStore = config.groupStore;
26
+ this.hintRegistry = config.hintRegistry || new HintRegistry_1.HintRegistry();
27
+ this.eventBus = config.eventBus;
28
+ // Initialize strategy instances
29
+ this.textSearch = new TextSearchEngine_1.TextSearchEngine(this.graph);
30
+ this.symbolSearch = new SymbolSearchEngine_1.SymbolSearchEngine(this.graph);
31
+ this.resultProcessor = new ResultProcessor_1.ResultProcessor(this.groupStore);
32
+ this.dependencyTraversal = new DependencyTraversal_1.DependencyTraversal(this.graph);
33
+ // Register default hints if no custom registry provided
34
+ if (!config.hintRegistry) {
35
+ this.hintRegistry.registerDefaults();
36
+ }
37
+ }
38
+ /**
39
+ * Execute a search query.
40
+ *
41
+ * Supports multiple search modes:
42
+ * - text: Keyword matching in file paths
43
+ * - symbol: Symbol name matching
44
+ * - hybrid: Combined text + symbol search
45
+ *
46
+ * @param request - Search request
47
+ * @returns Search results sorted by relevance
48
+ */
49
+ search(request) {
50
+ const startTime = Date.now();
51
+ const mode = request.mode || 'hybrid';
52
+ const includeFull = request.includeFull || false;
53
+ const maxResults = includeFull ? 9999 : (request.maxResults || this.defaultMaxResults);
54
+ const maxSymbolsPerFile = includeFull ? 9999 : (request.maxSymbolsPerFile || this.defaultMaxSymbolsPerFile);
55
+ const symbolFormat = request.symbolFormat || 'full';
56
+ const useRegex = request.useRegex || false;
57
+ // Execute search based on mode - delegate to strategy classes
58
+ let results = [];
59
+ if (mode === 'text' || mode === 'hybrid') {
60
+ results = this.textSearch.search(request, useRegex);
61
+ }
62
+ if (mode === 'symbol' || mode === 'hybrid') {
63
+ const symbolResults = this.symbolSearch.search(request, useRegex);
64
+ results = this.resultProcessor.mergeResults(results, symbolResults);
65
+ }
66
+ // Apply filters
67
+ if (request.extensions) {
68
+ results = results.filter(r => request.extensions.some(ext => r.file.relativePath.endsWith(ext)));
69
+ }
70
+ if (request.pathPrefix) {
71
+ results = results.filter(r => r.file.relativePath.startsWith(request.pathPrefix));
72
+ }
73
+ // Sort by relevance (descending)
74
+ results.sort((a, b) => b.relevance - a.relevance);
75
+ // Limit results (unless includeFull is true)
76
+ const totalMatches = results.length;
77
+ if (!includeFull) {
78
+ results = results.slice(0, maxResults);
79
+ }
80
+ // Limit symbols per file (unless includeFull is true)
81
+ if (!includeFull) {
82
+ results = this.resultProcessor.limitSymbolsPerFile(results, maxSymbolsPerFile);
83
+ }
84
+ // Enrich with group membership BEFORE compacting symbols
85
+ // (enrichWithGroups needs matchedSymbols to find symbol-level groups)
86
+ if (this.groupStore) {
87
+ results = this.resultProcessor.enrichWithGroups(results);
88
+ }
89
+ // Convert symbols to compact format if requested
90
+ if (symbolFormat === 'compact') {
91
+ results = this.resultProcessor.compactSymbols(results, maxSymbolsPerFile);
92
+ }
93
+ // Strip full symbols array from file metadata for token efficiency (unless includeFull is true)
94
+ if (!includeFull) {
95
+ results = this.resultProcessor.stripFileSymbols(results);
96
+ }
97
+ // Generate contextual hints
98
+ const hints = this.hintRegistry.getHints({
99
+ results,
100
+ totalMatches,
101
+ query: request.query,
102
+ mode,
103
+ useRegex
104
+ });
105
+ const durationMs = Date.now() - startTime;
106
+ // Build response envelope
107
+ const envelope = {
108
+ success: true,
109
+ data: {
110
+ results,
111
+ totalMatches,
112
+ hints: hints.length > 0 ? hints : undefined
113
+ },
114
+ meta: {
115
+ durationMs,
116
+ timestamp: Date.now(),
117
+ operation: 'search',
118
+ query: request.query,
119
+ mode
120
+ }
121
+ };
122
+ // Plugin hook: before returning results (plugins can enrich metadata)
123
+ if (this.eventBus) {
124
+ this.eventBus.emit('search:result:before', envelope);
125
+ }
126
+ // Plugin hook: after enrichment (plugins can post-process)
127
+ if (this.eventBus) {
128
+ this.eventBus.emit('search:result:after', envelope);
129
+ }
130
+ return envelope;
131
+ }
132
+ // ── Public API Methods ─────────────────────────────────────────────────────
133
+ /**
134
+ * Find files by name pattern (supports * wildcard).
135
+ */
136
+ findByName(pattern) {
137
+ return this.textSearch.findByName(pattern);
138
+ }
139
+ /**
140
+ * Find files relevant to a task description.
141
+ * Uses keyword extraction + relevance scoring.
142
+ */
143
+ findRelevant(task, maxResults) {
144
+ const response = this.search({
145
+ query: task,
146
+ mode: 'hybrid',
147
+ maxResults: maxResults || this.defaultMaxResults
148
+ });
149
+ return response.data?.results || [];
150
+ }
151
+ /**
152
+ * Find all files that import a given file.
153
+ */
154
+ findImporters(relativePath) {
155
+ return this.dependencyTraversal.findImporters(relativePath);
156
+ }
157
+ /**
158
+ * Find all files imported by a given file.
159
+ */
160
+ findImports(relativePath) {
161
+ return this.dependencyTraversal.findImports(relativePath);
162
+ }
163
+ /**
164
+ * Get related files (imports + importers).
165
+ */
166
+ getRelated(relativePath) {
167
+ return this.dependencyTraversal.getRelated(relativePath);
168
+ }
169
+ /**
170
+ * Traverse dependency graph with BFS.
171
+ */
172
+ traverse(startPath, direction, maxDepth = 3) {
173
+ return this.dependencyTraversal.traverse(startPath, direction, maxDepth);
174
+ }
175
+ /**
176
+ * Search for DOM elements in template files.
177
+ *
178
+ * @param query - Element name or tag to search for
179
+ * @param tag - Optional tag filter
180
+ * @param hasId - Optional ID filter (true = explicit IDs, false = auto-numbered)
181
+ * @param maxResults - Max results to return
182
+ * @returns Element matches with file context
183
+ */
184
+ searchElements(query, options) {
185
+ const queryLower = query.toLowerCase();
186
+ const results = [];
187
+ const maxResults = options?.maxResults || this.defaultMaxResults;
188
+ for (const file of this.graph.getAllFiles()) {
189
+ if (!file.elements || file.elements.length === 0)
190
+ continue;
191
+ for (const element of file.elements) {
192
+ // Apply filters
193
+ if (options?.tag && element.tag !== options.tag)
194
+ continue;
195
+ if (options?.hasId !== undefined && element.hasId !== options.hasId)
196
+ continue;
197
+ // Check if element name or tag matches query
198
+ const matchesQuery = element.name.toLowerCase().includes(queryLower) ||
199
+ element.tag.toLowerCase().includes(queryLower);
200
+ if (matchesQuery) {
201
+ results.push({ element, file });
202
+ if (results.length >= maxResults)
203
+ return results;
204
+ }
205
+ }
206
+ }
207
+ return results;
208
+ }
209
+ }
210
+ exports.QueryEngine = QueryEngine;
211
+ //# sourceMappingURL=QueryEngine.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QueryEngine.js","sourceRoot":"","sources":["../../src/core/QueryEngine.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Scanner - Orchestrator using strategy pattern.
3
+ *
4
+ * Delegates to strategy classes for clean separation of concerns:
5
+ * - IgnorePatternMatcher: Pattern matching and .gitignore handling
6
+ * - DirectoryWalker: Safe directory tree traversal
7
+ * - DependencyResolver: Import resolution and dependency graph
8
+ */
9
+ import type { FileSystemProvider } from '../types/contracts/FileSystemProvider';
10
+ import type { FileEntry } from '../types/core';
11
+ import type { EventBus } from './EventBus';
12
+ import type { FileSystemGraph } from './FileSystemGraph';
13
+ /**
14
+ * Scanner configuration.
15
+ */
16
+ export interface ScannerConfig {
17
+ rootPath: string;
18
+ provider: FileSystemProvider;
19
+ eventBus: EventBus;
20
+ graph: FileSystemGraph;
21
+ ignorePatterns?: string[];
22
+ bypassHardcodedIgnoreList?: boolean;
23
+ }
24
+ /**
25
+ * Scan lifecycle event payloads.
26
+ */
27
+ export interface ScanStartPayload {
28
+ rootPath: string;
29
+ startTime: number;
30
+ }
31
+ export interface ScanFilePayload {
32
+ file: FileEntry;
33
+ content: string;
34
+ }
35
+ export interface ScanCompletePayload {
36
+ rootPath: string;
37
+ filesScanned: number;
38
+ directoriesScanned: number;
39
+ durationMs: number;
40
+ }
41
+ /**
42
+ * Scanner - Thin orchestrator delegating to strategies.
43
+ */
44
+ export declare class Scanner {
45
+ private rootPath;
46
+ private provider;
47
+ private eventBus;
48
+ private graph;
49
+ private debugLogPath;
50
+ private patternMatcher;
51
+ private directoryWalker;
52
+ private dependencyResolver;
53
+ constructor(config: ScannerConfig);
54
+ private debugLog;
55
+ /**
56
+ * Load .gitignore patterns before scan.
57
+ */
58
+ loadGitignore(): Promise<void>;
59
+ /**
60
+ * Execute full project scan.
61
+ */
62
+ scan(): Promise<{
63
+ filesScanned: number;
64
+ directoriesScanned: number;
65
+ durationMs: number;
66
+ }>;
67
+ /**
68
+ * Process a single file: add to graph, emit event.
69
+ */
70
+ private processFile;
71
+ /**
72
+ * Add ignore pattern.
73
+ */
74
+ addIgnorePattern(pattern: string): void;
75
+ /**
76
+ * Remove ignore pattern.
77
+ */
78
+ removeIgnorePattern(pattern: string): void;
79
+ /**
80
+ * Get current patterns.
81
+ */
82
+ getIgnorePatterns(): string[];
83
+ }
84
+ //# sourceMappingURL=Scanner.d.ts.map