agentic-qe 2.5.10 → 2.6.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 (313) hide show
  1. package/.claude/agents/qe-code-intelligence.md +359 -0
  2. package/CHANGELOG.md +61 -0
  3. package/README.md +3 -2
  4. package/dist/agents/BaseAgent.d.ts +48 -0
  5. package/dist/agents/BaseAgent.d.ts.map +1 -1
  6. package/dist/agents/BaseAgent.js +126 -0
  7. package/dist/agents/BaseAgent.js.map +1 -1
  8. package/dist/agents/CodeIntelligenceAgent.d.ts +133 -0
  9. package/dist/agents/CodeIntelligenceAgent.d.ts.map +1 -0
  10. package/dist/agents/CodeIntelligenceAgent.js +473 -0
  11. package/dist/agents/CodeIntelligenceAgent.js.map +1 -0
  12. package/dist/agents/context/ContextCache.d.ts +105 -0
  13. package/dist/agents/context/ContextCache.d.ts.map +1 -0
  14. package/dist/agents/context/ContextCache.js +235 -0
  15. package/dist/agents/context/ContextCache.js.map +1 -0
  16. package/dist/agents/context/ContextFormatter.d.ts +92 -0
  17. package/dist/agents/context/ContextFormatter.d.ts.map +1 -0
  18. package/dist/agents/context/ContextFormatter.js +338 -0
  19. package/dist/agents/context/ContextFormatter.js.map +1 -0
  20. package/dist/agents/context/GraphExpander.d.ts +87 -0
  21. package/dist/agents/context/GraphExpander.d.ts.map +1 -0
  22. package/dist/agents/context/GraphExpander.js +215 -0
  23. package/dist/agents/context/GraphExpander.js.map +1 -0
  24. package/dist/agents/context/KnowledgeGraphContextBuilder.d.ts +160 -0
  25. package/dist/agents/context/KnowledgeGraphContextBuilder.d.ts.map +1 -0
  26. package/dist/agents/context/KnowledgeGraphContextBuilder.js +300 -0
  27. package/dist/agents/context/KnowledgeGraphContextBuilder.js.map +1 -0
  28. package/dist/agents/context/index.d.ts +15 -0
  29. package/dist/agents/context/index.d.ts.map +1 -0
  30. package/dist/agents/context/index.js +18 -0
  31. package/dist/agents/context/index.js.map +1 -0
  32. package/dist/agents/index.d.ts +1 -0
  33. package/dist/agents/index.d.ts.map +1 -1
  34. package/dist/agents/index.js +67 -3
  35. package/dist/agents/index.js.map +1 -1
  36. package/dist/cli/commands/knowledge-graph.d.ts +112 -0
  37. package/dist/cli/commands/knowledge-graph.d.ts.map +1 -0
  38. package/dist/cli/commands/knowledge-graph.js +466 -0
  39. package/dist/cli/commands/knowledge-graph.js.map +1 -0
  40. package/dist/cli/formatters/KGOutputFormatter.d.ts +50 -0
  41. package/dist/cli/formatters/KGOutputFormatter.d.ts.map +1 -0
  42. package/dist/cli/formatters/KGOutputFormatter.js +237 -0
  43. package/dist/cli/formatters/KGOutputFormatter.js.map +1 -0
  44. package/dist/cli/index-working.js +138 -0
  45. package/dist/cli/index-working.js.map +1 -1
  46. package/dist/cli/init/claude-config.d.ts +13 -1
  47. package/dist/cli/init/claude-config.d.ts.map +1 -1
  48. package/dist/cli/init/claude-config.js +70 -8
  49. package/dist/cli/init/claude-config.js.map +1 -1
  50. package/dist/cli/init/code-intelligence-init.d.ts +52 -0
  51. package/dist/cli/init/code-intelligence-init.d.ts.map +1 -0
  52. package/dist/cli/init/code-intelligence-init.js +250 -0
  53. package/dist/cli/init/code-intelligence-init.js.map +1 -0
  54. package/dist/cli/init/index.d.ts +2 -2
  55. package/dist/cli/init/index.d.ts.map +1 -1
  56. package/dist/cli/init/index.js +10 -1
  57. package/dist/cli/init/index.js.map +1 -1
  58. package/dist/code-intelligence/chunking/ASTChunker.d.ts +64 -0
  59. package/dist/code-intelligence/chunking/ASTChunker.d.ts.map +1 -0
  60. package/dist/code-intelligence/chunking/ASTChunker.js +344 -0
  61. package/dist/code-intelligence/chunking/ASTChunker.js.map +1 -0
  62. package/dist/code-intelligence/chunking/ChunkSplitter.d.ts +48 -0
  63. package/dist/code-intelligence/chunking/ChunkSplitter.d.ts.map +1 -0
  64. package/dist/code-intelligence/chunking/ChunkSplitter.js +278 -0
  65. package/dist/code-intelligence/chunking/ChunkSplitter.js.map +1 -0
  66. package/dist/code-intelligence/chunking/index.d.ts +8 -0
  67. package/dist/code-intelligence/chunking/index.d.ts.map +1 -0
  68. package/dist/code-intelligence/chunking/index.js +13 -0
  69. package/dist/code-intelligence/chunking/index.js.map +1 -0
  70. package/dist/code-intelligence/chunking/types.d.ts +52 -0
  71. package/dist/code-intelligence/chunking/types.d.ts.map +1 -0
  72. package/dist/code-intelligence/chunking/types.js +6 -0
  73. package/dist/code-intelligence/chunking/types.js.map +1 -0
  74. package/dist/code-intelligence/config/database-schema.d.ts +245 -0
  75. package/dist/code-intelligence/config/database-schema.d.ts.map +1 -0
  76. package/dist/code-intelligence/config/database-schema.js +110 -0
  77. package/dist/code-intelligence/config/database-schema.js.map +1 -0
  78. package/dist/code-intelligence/config/environment.d.ts +53 -0
  79. package/dist/code-intelligence/config/environment.d.ts.map +1 -0
  80. package/dist/code-intelligence/config/environment.js +86 -0
  81. package/dist/code-intelligence/config/environment.js.map +1 -0
  82. package/dist/code-intelligence/config/index.d.ts +10 -0
  83. package/dist/code-intelligence/config/index.d.ts.map +1 -0
  84. package/dist/code-intelligence/config/index.js +36 -0
  85. package/dist/code-intelligence/config/index.js.map +1 -0
  86. package/dist/code-intelligence/embeddings/EmbeddingCache.d.ts +81 -0
  87. package/dist/code-intelligence/embeddings/EmbeddingCache.d.ts.map +1 -0
  88. package/dist/code-intelligence/embeddings/EmbeddingCache.js +168 -0
  89. package/dist/code-intelligence/embeddings/EmbeddingCache.js.map +1 -0
  90. package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts +82 -0
  91. package/dist/code-intelligence/embeddings/NomicEmbedder.d.ts.map +1 -0
  92. package/dist/code-intelligence/embeddings/NomicEmbedder.js +233 -0
  93. package/dist/code-intelligence/embeddings/NomicEmbedder.js.map +1 -0
  94. package/dist/code-intelligence/embeddings/OllamaClient.d.ts +42 -0
  95. package/dist/code-intelligence/embeddings/OllamaClient.d.ts.map +1 -0
  96. package/dist/code-intelligence/embeddings/OllamaClient.js +142 -0
  97. package/dist/code-intelligence/embeddings/OllamaClient.js.map +1 -0
  98. package/dist/code-intelligence/embeddings/index.d.ts +33 -0
  99. package/dist/code-intelligence/embeddings/index.d.ts.map +1 -0
  100. package/dist/code-intelligence/embeddings/index.js +39 -0
  101. package/dist/code-intelligence/embeddings/index.js.map +1 -0
  102. package/dist/code-intelligence/embeddings/types.d.ts +84 -0
  103. package/dist/code-intelligence/embeddings/types.d.ts.map +1 -0
  104. package/dist/code-intelligence/embeddings/types.js +19 -0
  105. package/dist/code-intelligence/embeddings/types.js.map +1 -0
  106. package/dist/code-intelligence/graph/GraphBuilder.d.ts +126 -0
  107. package/dist/code-intelligence/graph/GraphBuilder.d.ts.map +1 -0
  108. package/dist/code-intelligence/graph/GraphBuilder.js +416 -0
  109. package/dist/code-intelligence/graph/GraphBuilder.js.map +1 -0
  110. package/dist/code-intelligence/graph/ImportParser.d.ts +72 -0
  111. package/dist/code-intelligence/graph/ImportParser.d.ts.map +1 -0
  112. package/dist/code-intelligence/graph/ImportParser.js +422 -0
  113. package/dist/code-intelligence/graph/ImportParser.js.map +1 -0
  114. package/dist/code-intelligence/graph/RelationshipExtractor.d.ts +74 -0
  115. package/dist/code-intelligence/graph/RelationshipExtractor.d.ts.map +1 -0
  116. package/dist/code-intelligence/graph/RelationshipExtractor.js +310 -0
  117. package/dist/code-intelligence/graph/RelationshipExtractor.js.map +1 -0
  118. package/dist/code-intelligence/graph/TestMapper.d.ts +99 -0
  119. package/dist/code-intelligence/graph/TestMapper.d.ts.map +1 -0
  120. package/dist/code-intelligence/graph/TestMapper.js +335 -0
  121. package/dist/code-intelligence/graph/TestMapper.js.map +1 -0
  122. package/dist/code-intelligence/graph/index.d.ts +14 -0
  123. package/dist/code-intelligence/graph/index.d.ts.map +1 -0
  124. package/dist/code-intelligence/graph/index.js +19 -0
  125. package/dist/code-intelligence/graph/index.js.map +1 -0
  126. package/dist/code-intelligence/graph/types.d.ts +141 -0
  127. package/dist/code-intelligence/graph/types.d.ts.map +1 -0
  128. package/dist/code-intelligence/graph/types.js +18 -0
  129. package/dist/code-intelligence/graph/types.js.map +1 -0
  130. package/dist/code-intelligence/indexing/FileWatcher.d.ts +90 -0
  131. package/dist/code-intelligence/indexing/FileWatcher.d.ts.map +1 -0
  132. package/dist/code-intelligence/indexing/FileWatcher.js +304 -0
  133. package/dist/code-intelligence/indexing/FileWatcher.js.map +1 -0
  134. package/dist/code-intelligence/indexing/GitChangeDetector.d.ts +76 -0
  135. package/dist/code-intelligence/indexing/GitChangeDetector.d.ts.map +1 -0
  136. package/dist/code-intelligence/indexing/GitChangeDetector.js +347 -0
  137. package/dist/code-intelligence/indexing/GitChangeDetector.js.map +1 -0
  138. package/dist/code-intelligence/indexing/IncrementalIndexer.d.ts +108 -0
  139. package/dist/code-intelligence/indexing/IncrementalIndexer.d.ts.map +1 -0
  140. package/dist/code-intelligence/indexing/IncrementalIndexer.js +269 -0
  141. package/dist/code-intelligence/indexing/IncrementalIndexer.js.map +1 -0
  142. package/dist/code-intelligence/indexing/index.d.ts +11 -0
  143. package/dist/code-intelligence/indexing/index.d.ts.map +1 -0
  144. package/dist/code-intelligence/indexing/index.js +18 -0
  145. package/dist/code-intelligence/indexing/index.js.map +1 -0
  146. package/dist/code-intelligence/indexing/types.d.ts +133 -0
  147. package/dist/code-intelligence/indexing/types.d.ts.map +1 -0
  148. package/dist/code-intelligence/indexing/types.js +27 -0
  149. package/dist/code-intelligence/indexing/types.js.map +1 -0
  150. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts +150 -0
  151. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.d.ts.map +1 -0
  152. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js +806 -0
  153. package/dist/code-intelligence/orchestrator/CodeIntelligenceOrchestrator.js.map +1 -0
  154. package/dist/code-intelligence/orchestrator/index.d.ts +8 -0
  155. package/dist/code-intelligence/orchestrator/index.d.ts.map +1 -0
  156. package/dist/code-intelligence/orchestrator/index.js +24 -0
  157. package/dist/code-intelligence/orchestrator/index.js.map +1 -0
  158. package/dist/code-intelligence/orchestrator/types.d.ts +164 -0
  159. package/dist/code-intelligence/orchestrator/types.d.ts.map +1 -0
  160. package/dist/code-intelligence/orchestrator/types.js +18 -0
  161. package/dist/code-intelligence/orchestrator/types.js.map +1 -0
  162. package/dist/code-intelligence/parser/LanguageRegistry.d.ts +13 -0
  163. package/dist/code-intelligence/parser/LanguageRegistry.d.ts.map +1 -0
  164. package/dist/code-intelligence/parser/LanguageRegistry.js +150 -0
  165. package/dist/code-intelligence/parser/LanguageRegistry.js.map +1 -0
  166. package/dist/code-intelligence/parser/TreeSitterParser.d.ts +98 -0
  167. package/dist/code-intelligence/parser/TreeSitterParser.d.ts.map +1 -0
  168. package/dist/code-intelligence/parser/TreeSitterParser.js +530 -0
  169. package/dist/code-intelligence/parser/TreeSitterParser.js.map +1 -0
  170. package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts +36 -0
  171. package/dist/code-intelligence/parser/extractors/BaseExtractor.d.ts.map +1 -0
  172. package/dist/code-intelligence/parser/extractors/BaseExtractor.js +31 -0
  173. package/dist/code-intelligence/parser/extractors/BaseExtractor.js.map +1 -0
  174. package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts +21 -0
  175. package/dist/code-intelligence/parser/extractors/GoExtractor.d.ts.map +1 -0
  176. package/dist/code-intelligence/parser/extractors/GoExtractor.js +249 -0
  177. package/dist/code-intelligence/parser/extractors/GoExtractor.js.map +1 -0
  178. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts +21 -0
  179. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.d.ts.map +1 -0
  180. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js +217 -0
  181. package/dist/code-intelligence/parser/extractors/JavaScriptExtractor.js.map +1 -0
  182. package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts +20 -0
  183. package/dist/code-intelligence/parser/extractors/PythonExtractor.d.ts.map +1 -0
  184. package/dist/code-intelligence/parser/extractors/PythonExtractor.js +237 -0
  185. package/dist/code-intelligence/parser/extractors/PythonExtractor.js.map +1 -0
  186. package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts +21 -0
  187. package/dist/code-intelligence/parser/extractors/RustExtractor.d.ts.map +1 -0
  188. package/dist/code-intelligence/parser/extractors/RustExtractor.js +234 -0
  189. package/dist/code-intelligence/parser/extractors/RustExtractor.js.map +1 -0
  190. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts +23 -0
  191. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.d.ts.map +1 -0
  192. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js +247 -0
  193. package/dist/code-intelligence/parser/extractors/TypeScriptExtractor.js.map +1 -0
  194. package/dist/code-intelligence/parser/extractors/index.d.ts +7 -0
  195. package/dist/code-intelligence/parser/extractors/index.d.ts.map +1 -0
  196. package/dist/code-intelligence/parser/extractors/index.js +16 -0
  197. package/dist/code-intelligence/parser/extractors/index.js.map +1 -0
  198. package/dist/code-intelligence/parser/index.d.ts +8 -0
  199. package/dist/code-intelligence/parser/index.d.ts.map +1 -0
  200. package/dist/code-intelligence/parser/index.js +12 -0
  201. package/dist/code-intelligence/parser/index.js.map +1 -0
  202. package/dist/code-intelligence/parser/types.d.ts +60 -0
  203. package/dist/code-intelligence/parser/types.d.ts.map +1 -0
  204. package/dist/code-intelligence/parser/types.js +6 -0
  205. package/dist/code-intelligence/parser/types.js.map +1 -0
  206. package/dist/code-intelligence/rag/ContextBuilder.d.ts +82 -0
  207. package/dist/code-intelligence/rag/ContextBuilder.d.ts.map +1 -0
  208. package/dist/code-intelligence/rag/ContextBuilder.js +242 -0
  209. package/dist/code-intelligence/rag/ContextBuilder.js.map +1 -0
  210. package/dist/code-intelligence/rag/GraphExpander.d.ts +95 -0
  211. package/dist/code-intelligence/rag/GraphExpander.d.ts.map +1 -0
  212. package/dist/code-intelligence/rag/GraphExpander.js +250 -0
  213. package/dist/code-intelligence/rag/GraphExpander.js.map +1 -0
  214. package/dist/code-intelligence/rag/index.d.ts +9 -0
  215. package/dist/code-intelligence/rag/index.d.ts.map +1 -0
  216. package/dist/code-intelligence/rag/index.js +25 -0
  217. package/dist/code-intelligence/rag/index.js.map +1 -0
  218. package/dist/code-intelligence/rag/types.d.ts +121 -0
  219. package/dist/code-intelligence/rag/types.d.ts.map +1 -0
  220. package/dist/code-intelligence/rag/types.js +50 -0
  221. package/dist/code-intelligence/rag/types.js.map +1 -0
  222. package/dist/code-intelligence/retrieval/SemanticRetriever.d.ts +62 -0
  223. package/dist/code-intelligence/retrieval/SemanticRetriever.d.ts.map +1 -0
  224. package/dist/code-intelligence/retrieval/SemanticRetriever.js +174 -0
  225. package/dist/code-intelligence/retrieval/SemanticRetriever.js.map +1 -0
  226. package/dist/code-intelligence/retrieval/index.d.ts +9 -0
  227. package/dist/code-intelligence/retrieval/index.d.ts.map +1 -0
  228. package/dist/code-intelligence/retrieval/index.js +16 -0
  229. package/dist/code-intelligence/retrieval/index.js.map +1 -0
  230. package/dist/code-intelligence/retrieval/types.d.ts +118 -0
  231. package/dist/code-intelligence/retrieval/types.d.ts.map +1 -0
  232. package/dist/code-intelligence/retrieval/types.js +46 -0
  233. package/dist/code-intelligence/retrieval/types.js.map +1 -0
  234. package/dist/code-intelligence/router/CodeIntelligenceHybridRouter.d.ts +167 -0
  235. package/dist/code-intelligence/router/CodeIntelligenceHybridRouter.d.ts.map +1 -0
  236. package/dist/code-intelligence/router/CodeIntelligenceHybridRouter.js +365 -0
  237. package/dist/code-intelligence/router/CodeIntelligenceHybridRouter.js.map +1 -0
  238. package/dist/code-intelligence/router/index.d.ts +7 -0
  239. package/dist/code-intelligence/router/index.d.ts.map +1 -0
  240. package/dist/code-intelligence/router/index.js +14 -0
  241. package/dist/code-intelligence/router/index.js.map +1 -0
  242. package/dist/code-intelligence/search/BM25Search.d.ts +74 -0
  243. package/dist/code-intelligence/search/BM25Search.d.ts.map +1 -0
  244. package/dist/code-intelligence/search/BM25Search.js +233 -0
  245. package/dist/code-intelligence/search/BM25Search.js.map +1 -0
  246. package/dist/code-intelligence/search/HybridSearchEngine.d.ts +94 -0
  247. package/dist/code-intelligence/search/HybridSearchEngine.d.ts.map +1 -0
  248. package/dist/code-intelligence/search/HybridSearchEngine.js +168 -0
  249. package/dist/code-intelligence/search/HybridSearchEngine.js.map +1 -0
  250. package/dist/code-intelligence/search/RRFFusion.d.ts +46 -0
  251. package/dist/code-intelligence/search/RRFFusion.d.ts.map +1 -0
  252. package/dist/code-intelligence/search/RRFFusion.js +223 -0
  253. package/dist/code-intelligence/search/RRFFusion.js.map +1 -0
  254. package/dist/code-intelligence/search/VectorSearch.d.ts +157 -0
  255. package/dist/code-intelligence/search/VectorSearch.d.ts.map +1 -0
  256. package/dist/code-intelligence/search/VectorSearch.js +301 -0
  257. package/dist/code-intelligence/search/VectorSearch.js.map +1 -0
  258. package/dist/code-intelligence/search/index.d.ts +14 -0
  259. package/dist/code-intelligence/search/index.d.ts.map +1 -0
  260. package/dist/code-intelligence/search/index.js +23 -0
  261. package/dist/code-intelligence/search/index.js.map +1 -0
  262. package/dist/code-intelligence/search/types.d.ts +201 -0
  263. package/dist/code-intelligence/search/types.d.ts.map +1 -0
  264. package/dist/code-intelligence/search/types.js +35 -0
  265. package/dist/code-intelligence/search/types.js.map +1 -0
  266. package/dist/code-intelligence/service/CodeIntelligenceService.d.ts +171 -0
  267. package/dist/code-intelligence/service/CodeIntelligenceService.d.ts.map +1 -0
  268. package/dist/code-intelligence/service/CodeIntelligenceService.js +325 -0
  269. package/dist/code-intelligence/service/CodeIntelligenceService.js.map +1 -0
  270. package/dist/code-intelligence/service/index.d.ts +7 -0
  271. package/dist/code-intelligence/service/index.d.ts.map +1 -0
  272. package/dist/code-intelligence/service/index.js +14 -0
  273. package/dist/code-intelligence/service/index.js.map +1 -0
  274. package/dist/code-intelligence/storage/CodeChunkStore.d.ts +213 -0
  275. package/dist/code-intelligence/storage/CodeChunkStore.d.ts.map +1 -0
  276. package/dist/code-intelligence/storage/CodeChunkStore.js +542 -0
  277. package/dist/code-intelligence/storage/CodeChunkStore.js.map +1 -0
  278. package/dist/code-intelligence/storage/index.d.ts +7 -0
  279. package/dist/code-intelligence/storage/index.d.ts.map +1 -0
  280. package/dist/code-intelligence/storage/index.js +13 -0
  281. package/dist/code-intelligence/storage/index.js.map +1 -0
  282. package/dist/code-intelligence/visualization/ClassDiagramBuilder.d.ts +51 -0
  283. package/dist/code-intelligence/visualization/ClassDiagramBuilder.d.ts.map +1 -0
  284. package/dist/code-intelligence/visualization/ClassDiagramBuilder.js +180 -0
  285. package/dist/code-intelligence/visualization/ClassDiagramBuilder.js.map +1 -0
  286. package/dist/code-intelligence/visualization/DependencyGraphBuilder.d.ts +66 -0
  287. package/dist/code-intelligence/visualization/DependencyGraphBuilder.d.ts.map +1 -0
  288. package/dist/code-intelligence/visualization/DependencyGraphBuilder.js +203 -0
  289. package/dist/code-intelligence/visualization/DependencyGraphBuilder.js.map +1 -0
  290. package/dist/code-intelligence/visualization/MermaidGenerator.d.ts +76 -0
  291. package/dist/code-intelligence/visualization/MermaidGenerator.d.ts.map +1 -0
  292. package/dist/code-intelligence/visualization/MermaidGenerator.js +368 -0
  293. package/dist/code-intelligence/visualization/MermaidGenerator.js.map +1 -0
  294. package/dist/code-intelligence/visualization/index.d.ts +9 -0
  295. package/dist/code-intelligence/visualization/index.d.ts.map +1 -0
  296. package/dist/code-intelligence/visualization/index.js +15 -0
  297. package/dist/code-intelligence/visualization/index.js.map +1 -0
  298. package/dist/core/FleetManager.d.ts +27 -0
  299. package/dist/core/FleetManager.d.ts.map +1 -1
  300. package/dist/core/FleetManager.js +84 -0
  301. package/dist/core/FleetManager.js.map +1 -1
  302. package/dist/core/memory/HNSWVectorMemory.js +1 -1
  303. package/dist/core/memory/HNSWVectorMemory.js.map +1 -1
  304. package/dist/mcp/server-instructions.d.ts +1 -1
  305. package/dist/mcp/server-instructions.d.ts.map +1 -1
  306. package/dist/mcp/server-instructions.js +1 -1
  307. package/dist/mcp/server-instructions.js.map +1 -1
  308. package/dist/types/index.d.ts +2 -1
  309. package/dist/types/index.d.ts.map +1 -1
  310. package/dist/types/index.js +2 -0
  311. package/dist/types/index.js.map +1 -1
  312. package/docs/reference/agents.md +44 -1
  313. package/package.json +12 -1
@@ -0,0 +1,473 @@
1
+ "use strict";
2
+ /**
3
+ * CodeIntelligenceAgent - Knowledge graph-based code understanding
4
+ * Wave 6 (v2.6.0) - Code Intelligence System Integration
5
+ *
6
+ * Provides semantic code search, AST parsing, and context building
7
+ * with 80% token reduction through intelligent code retrieval.
8
+ */
9
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ var desc = Object.getOwnPropertyDescriptor(m, k);
12
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
13
+ desc = { enumerable: true, get: function() { return m[k]; } };
14
+ }
15
+ Object.defineProperty(o, k2, desc);
16
+ }) : (function(o, m, k, k2) {
17
+ if (k2 === undefined) k2 = k;
18
+ o[k2] = m[k];
19
+ }));
20
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
21
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
22
+ }) : function(o, v) {
23
+ o["default"] = v;
24
+ });
25
+ var __importStar = (this && this.__importStar) || (function () {
26
+ var ownKeys = function(o) {
27
+ ownKeys = Object.getOwnPropertyNames || function (o) {
28
+ var ar = [];
29
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
30
+ return ar;
31
+ };
32
+ return ownKeys(o);
33
+ };
34
+ return function (mod) {
35
+ if (mod && mod.__esModule) return mod;
36
+ var result = {};
37
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
38
+ __setModuleDefault(result, mod);
39
+ return result;
40
+ };
41
+ })();
42
+ Object.defineProperty(exports, "__esModule", { value: true });
43
+ exports.CodeIntelligenceAgent = void 0;
44
+ exports.createCodeIntelligenceAgent = createCodeIntelligenceAgent;
45
+ const path = __importStar(require("path"));
46
+ const BaseAgent_1 = require("./BaseAgent");
47
+ const Logger_1 = require("../utils/Logger");
48
+ const CodeIntelligenceOrchestrator_1 = require("../code-intelligence/orchestrator/CodeIntelligenceOrchestrator");
49
+ // ============================================================================
50
+ // Main Agent Class
51
+ // ============================================================================
52
+ class CodeIntelligenceAgent extends BaseAgent_1.BaseAgent {
53
+ constructor(config) {
54
+ super({
55
+ ...config,
56
+ type: 'code-intelligence',
57
+ capabilities: [
58
+ { name: 'code-indexing', version: '1.0.0', description: 'Parse and index codebases with Tree-sitter' },
59
+ { name: 'semantic-search', version: '1.0.0', description: 'Search code by meaning using embeddings' },
60
+ { name: 'context-building', version: '1.0.0', description: 'Build focused context with 80% token reduction' },
61
+ { name: 'graph-visualization', version: '1.0.0', description: 'Generate Mermaid diagrams for code structure' },
62
+ { name: 'incremental-updates', version: '1.0.0', description: 'Track git changes and update index' },
63
+ ],
64
+ });
65
+ this.orchestrator = null;
66
+ this.isIndexed = false;
67
+ this.agentConfig = config;
68
+ this.logger = Logger_1.Logger.getInstance();
69
+ }
70
+ // ============================================================================
71
+ // BaseAgent Abstract Methods
72
+ // ============================================================================
73
+ async initializeComponents() {
74
+ this.logger.info('Initializing Code Intelligence components...');
75
+ const orchestratorConfig = {
76
+ rootDir: this.agentConfig.rootDir || process.cwd(),
77
+ watchEnabled: false,
78
+ gitEnabled: this.agentConfig.incrementalIndexing ?? true,
79
+ };
80
+ // Add Ollama config if provided
81
+ if (this.agentConfig.ollamaUrl) {
82
+ orchestratorConfig.ollamaUrl = this.agentConfig.ollamaUrl;
83
+ }
84
+ // Add database config if provided
85
+ if (this.agentConfig.database?.enabled !== false) {
86
+ orchestratorConfig.database = {
87
+ enabled: true,
88
+ host: this.agentConfig.database?.host || process.env.PGHOST || 'localhost',
89
+ port: this.agentConfig.database?.port || parseInt(process.env.PGPORT || '5432'),
90
+ database: this.agentConfig.database?.database || process.env.PGDATABASE || 'ruvector_db',
91
+ user: this.agentConfig.database?.user || process.env.PGUSER || 'ruvector',
92
+ password: this.agentConfig.database?.password || process.env.PGPASSWORD || 'ruvector',
93
+ };
94
+ }
95
+ this.orchestrator = new CodeIntelligenceOrchestrator_1.CodeIntelligenceOrchestrator(orchestratorConfig);
96
+ await this.orchestrator.initialize();
97
+ this.logger.info('Code Intelligence components initialized');
98
+ }
99
+ async performTask(task) {
100
+ const payload = task.payload;
101
+ const taskType = payload.taskType || this.inferTaskType(task);
102
+ this.logger.info(`Performing task: ${taskType}`);
103
+ try {
104
+ switch (taskType) {
105
+ case 'index':
106
+ return await this.performIndexTask(payload);
107
+ case 'search':
108
+ return await this.performSearchTask(payload);
109
+ case 'context':
110
+ return await this.performContextTask(payload);
111
+ case 'graph':
112
+ return await this.performGraphTask(payload);
113
+ case 'stats':
114
+ return await this.performStatsTask();
115
+ case 'incremental-update':
116
+ return await this.performIncrementalUpdateTask(payload);
117
+ default:
118
+ throw new Error(`Unknown task type: ${taskType}`);
119
+ }
120
+ }
121
+ catch (error) {
122
+ this.logger.error(`Task failed: ${error.message}`);
123
+ return {
124
+ success: false,
125
+ taskType,
126
+ error: error.message,
127
+ };
128
+ }
129
+ }
130
+ async loadKnowledge() {
131
+ // Check if index exists
132
+ if (this.orchestrator) {
133
+ try {
134
+ const stats = this.orchestrator.getStats();
135
+ if (stats.indexer.totalChunks > 0) {
136
+ this.isIndexed = true;
137
+ this.logger.info(`Loaded existing index: ${stats.indexer.totalChunks} chunks`);
138
+ }
139
+ }
140
+ catch {
141
+ // No existing index, will need to index first
142
+ }
143
+ }
144
+ }
145
+ async cleanup() {
146
+ if (this.orchestrator) {
147
+ await this.orchestrator.shutdown();
148
+ this.orchestrator = null;
149
+ }
150
+ this.logger.info('Code Intelligence agent cleaned up');
151
+ }
152
+ // ============================================================================
153
+ // Task Implementations
154
+ // ============================================================================
155
+ async performIndexTask(payload) {
156
+ if (!this.orchestrator) {
157
+ throw new Error('Orchestrator not initialized');
158
+ }
159
+ const rootDir = this.agentConfig.rootDir || process.cwd();
160
+ const startTime = Date.now();
161
+ const result = await this.orchestrator.indexProject(rootDir, (progress) => {
162
+ this.logger.debug(`Indexing: ${progress.processedFiles}/${progress.totalFiles} files`);
163
+ });
164
+ this.isIndexed = true;
165
+ const graphStats = this.orchestrator.getStats().graph;
166
+ return {
167
+ success: true,
168
+ taskType: 'index',
169
+ indexStats: {
170
+ filesIndexed: result.stats.filesIndexed,
171
+ entitiesExtracted: graphStats.nodesByType?.class || 0 + (graphStats.nodesByType?.function || 0),
172
+ chunksCreated: result.stats.chunksCreated,
173
+ embeddingsGenerated: result.stats.embeddingsGenerated,
174
+ graphEdges: result.stats.edgesCreated,
175
+ duration: Date.now() - startTime,
176
+ },
177
+ };
178
+ }
179
+ async performSearchTask(payload) {
180
+ if (!this.orchestrator) {
181
+ throw new Error('Orchestrator not initialized');
182
+ }
183
+ if (!payload.query) {
184
+ throw new Error('Query is required for search task');
185
+ }
186
+ const queryContext = {
187
+ query: payload.query,
188
+ topK: payload.topK || 10,
189
+ includeGraphContext: payload.includeGraphContext ?? true,
190
+ graphDepth: payload.graphDepth || 2,
191
+ };
192
+ const result = await this.orchestrator.query(queryContext);
193
+ return {
194
+ success: true,
195
+ taskType: 'search',
196
+ searchResults: result,
197
+ };
198
+ }
199
+ async performContextTask(payload) {
200
+ if (!this.orchestrator) {
201
+ throw new Error('Orchestrator not initialized');
202
+ }
203
+ // Use the KnowledgeGraphContextBuilder through BaseAgent's methods
204
+ if (!this.hasCodeIntelligence()) {
205
+ // Fallback: use orchestrator directly
206
+ const searchResult = await this.orchestrator.query({
207
+ query: payload.query || `file:${payload.filePath}`,
208
+ topK: payload.topK || 10,
209
+ includeGraphContext: true,
210
+ graphDepth: 2,
211
+ });
212
+ const context = this.formatSearchResultsAsContext(searchResult);
213
+ return {
214
+ success: true,
215
+ taskType: 'context',
216
+ context,
217
+ tokenEstimate: Math.ceil(context.length / 4),
218
+ tokenReduction: 80, // Estimate
219
+ };
220
+ }
221
+ // Use BaseAgent's code intelligence context building
222
+ let enrichedContext;
223
+ if (payload.filePath && payload.entityName) {
224
+ enrichedContext = await this.getEntityContext(payload.filePath, payload.entityName);
225
+ }
226
+ else if (payload.filePath) {
227
+ enrichedContext = await this.getFileContext(payload.filePath);
228
+ }
229
+ else if (payload.query) {
230
+ enrichedContext = await this.getCodeIntelligenceContext({
231
+ query: payload.query,
232
+ });
233
+ }
234
+ else {
235
+ throw new Error('Either query, filePath, or both filePath and entityName required');
236
+ }
237
+ if (!enrichedContext) {
238
+ throw new Error('Failed to build context');
239
+ }
240
+ return {
241
+ success: true,
242
+ taskType: 'context',
243
+ context: enrichedContext.formatted.content,
244
+ tokenEstimate: enrichedContext.metadata.tokenEstimate,
245
+ tokenReduction: enrichedContext.metadata.tokenReduction || 80,
246
+ };
247
+ }
248
+ async performGraphTask(payload) {
249
+ if (!this.orchestrator) {
250
+ throw new Error('Orchestrator not initialized');
251
+ }
252
+ if (!payload.filePath) {
253
+ throw new Error('filePath is required for graph task');
254
+ }
255
+ const graphBuilder = this.orchestrator.getGraphBuilder();
256
+ const nodes = graphBuilder.findNodesInFile(payload.filePath);
257
+ if (nodes.length === 0) {
258
+ return {
259
+ success: true,
260
+ taskType: 'graph',
261
+ diagram: `%% No graph data found for ${path.basename(payload.filePath)}\n%% Run index task first`,
262
+ };
263
+ }
264
+ // Import visualization builders
265
+ const { ClassDiagramBuilder } = await Promise.resolve().then(() => __importStar(require('../code-intelligence/visualization/ClassDiagramBuilder')));
266
+ const { DependencyGraphBuilder } = await Promise.resolve().then(() => __importStar(require('../code-intelligence/visualization/DependencyGraphBuilder')));
267
+ // Get edges for nodes
268
+ const edges = this.getEdgesForNodes(graphBuilder, nodes);
269
+ let diagram;
270
+ if (payload.diagramType === 'dependency') {
271
+ diagram = DependencyGraphBuilder.build(nodes, edges, { direction: 'TB' });
272
+ }
273
+ else {
274
+ diagram = ClassDiagramBuilder.build(nodes, edges, { includeMethods: true });
275
+ }
276
+ return {
277
+ success: true,
278
+ taskType: 'graph',
279
+ diagram,
280
+ };
281
+ }
282
+ async performStatsTask() {
283
+ if (!this.orchestrator) {
284
+ throw new Error('Orchestrator not initialized');
285
+ }
286
+ const stats = this.orchestrator.getStats();
287
+ const graphStats = stats.graph;
288
+ // Calculate entities from graph
289
+ const entities = Object.values(graphStats.nodesByType || {}).reduce((sum, count) => sum + count, 0);
290
+ return {
291
+ success: true,
292
+ taskType: 'stats',
293
+ stats: {
294
+ totalChunks: stats.indexer.totalChunks,
295
+ totalEntities: entities,
296
+ totalEdges: graphStats.edgeCount,
297
+ languages: Object.keys(graphStats.nodesByType || {}),
298
+ },
299
+ };
300
+ }
301
+ async performIncrementalUpdateTask(payload) {
302
+ if (!this.orchestrator) {
303
+ throw new Error('Orchestrator not initialized');
304
+ }
305
+ const gitSince = payload.gitSince || 'HEAD~1';
306
+ const startTime = Date.now();
307
+ const changes = await this.orchestrator.getGitChanges(gitSince);
308
+ if (changes.length === 0) {
309
+ return {
310
+ success: true,
311
+ taskType: 'incremental-update',
312
+ indexStats: {
313
+ filesIndexed: 0,
314
+ entitiesExtracted: 0,
315
+ chunksCreated: 0,
316
+ embeddingsGenerated: 0,
317
+ graphEdges: 0,
318
+ duration: Date.now() - startTime,
319
+ },
320
+ };
321
+ }
322
+ const result = await this.orchestrator.processChanges(changes);
323
+ const graphStats = this.orchestrator.getStats().graph;
324
+ return {
325
+ success: true,
326
+ taskType: 'incremental-update',
327
+ indexStats: {
328
+ filesIndexed: result.stats.filesIndexed,
329
+ entitiesExtracted: graphStats.nodesByType?.class || 0,
330
+ chunksCreated: result.stats.chunksCreated,
331
+ embeddingsGenerated: result.stats.embeddingsGenerated,
332
+ graphEdges: result.stats.edgesCreated,
333
+ duration: Date.now() - startTime,
334
+ },
335
+ };
336
+ }
337
+ // ============================================================================
338
+ // Helper Methods
339
+ // ============================================================================
340
+ inferTaskType(task) {
341
+ const description = (task.description || task.type || '').toLowerCase();
342
+ if (description.includes('index') || description.includes('parse')) {
343
+ return 'index';
344
+ }
345
+ if (description.includes('search') || description.includes('find')) {
346
+ return 'search';
347
+ }
348
+ if (description.includes('context') || description.includes('build')) {
349
+ return 'context';
350
+ }
351
+ if (description.includes('graph') || description.includes('diagram') || description.includes('visualiz')) {
352
+ return 'graph';
353
+ }
354
+ if (description.includes('stat') || description.includes('info')) {
355
+ return 'stats';
356
+ }
357
+ if (description.includes('update') || description.includes('incremental')) {
358
+ return 'incremental-update';
359
+ }
360
+ // Default to search if query is present
361
+ if (task.payload?.query) {
362
+ return 'search';
363
+ }
364
+ return 'stats';
365
+ }
366
+ formatSearchResultsAsContext(result) {
367
+ const lines = [
368
+ `## Code Context`,
369
+ `Query: ${result.metadata?.query || 'N/A'}`,
370
+ `Results: ${result.results.length}`,
371
+ `Search Time: ${result.metadata?.searchTimeMs || 0}ms`,
372
+ '',
373
+ ];
374
+ for (const item of result.results) {
375
+ lines.push(`### ${item.entityName || path.basename(item.filePath)}`);
376
+ lines.push(`**File:** ${item.filePath}:${item.startLine}-${item.endLine}`);
377
+ lines.push(`**Type:** ${item.entityType || 'chunk'}`);
378
+ lines.push(`**Score:** ${item.score.toFixed(4)}`);
379
+ lines.push('```typescript');
380
+ lines.push(item.content);
381
+ lines.push('```');
382
+ lines.push('');
383
+ }
384
+ return lines.join('\n');
385
+ }
386
+ getEdgesForNodes(graphBuilder, nodes) {
387
+ const nodeIds = new Set(nodes.map(n => n.id));
388
+ const edges = [];
389
+ const seenEdges = new Set();
390
+ for (const node of nodes) {
391
+ const outgoing = graphBuilder.getOutgoingEdges?.(node.id) || [];
392
+ for (const edge of outgoing) {
393
+ if (!seenEdges.has(edge.id)) {
394
+ edges.push(edge);
395
+ seenEdges.add(edge.id);
396
+ }
397
+ }
398
+ const incoming = graphBuilder.getIncomingEdges?.(node.id) || [];
399
+ for (const edge of incoming) {
400
+ if (nodeIds.has(edge.source) && !seenEdges.has(edge.id)) {
401
+ edges.push(edge);
402
+ seenEdges.add(edge.id);
403
+ }
404
+ }
405
+ }
406
+ return edges;
407
+ }
408
+ // ============================================================================
409
+ // Public API
410
+ // ============================================================================
411
+ /**
412
+ * Check if the codebase has been indexed
413
+ */
414
+ isCodebaseIndexed() {
415
+ return this.isIndexed;
416
+ }
417
+ /**
418
+ * Get the underlying orchestrator for advanced usage
419
+ */
420
+ getOrchestrator() {
421
+ return this.orchestrator;
422
+ }
423
+ /**
424
+ * Quick search without full task execution
425
+ */
426
+ async quickSearch(query, topK = 10) {
427
+ if (!this.orchestrator) {
428
+ return null;
429
+ }
430
+ return this.orchestrator.query({
431
+ query,
432
+ topK,
433
+ includeGraphContext: true,
434
+ graphDepth: 2,
435
+ });
436
+ }
437
+ /**
438
+ * Get formatted context for a file (for other agents)
439
+ */
440
+ async getFormattedFileContext(filePath) {
441
+ const result = await this.performContextTask({
442
+ taskType: 'context',
443
+ filePath,
444
+ });
445
+ return result.success ? result.context || null : null;
446
+ }
447
+ /**
448
+ * Get formatted context for a query (for other agents)
449
+ */
450
+ async getFormattedQueryContext(query, topK = 10) {
451
+ const result = await this.performContextTask({
452
+ taskType: 'context',
453
+ query,
454
+ topK,
455
+ });
456
+ return result.success ? result.context || null : null;
457
+ }
458
+ }
459
+ exports.CodeIntelligenceAgent = CodeIntelligenceAgent;
460
+ // ============================================================================
461
+ // Factory Function
462
+ // ============================================================================
463
+ /**
464
+ * Create a Code Intelligence agent with default configuration
465
+ */
466
+ function createCodeIntelligenceAgent(memoryStore, config) {
467
+ return new CodeIntelligenceAgent({
468
+ memoryStore,
469
+ type: 'code-intelligence',
470
+ ...config,
471
+ });
472
+ }
473
+ //# sourceMappingURL=CodeIntelligenceAgent.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CodeIntelligenceAgent.js","sourceRoot":"","sources":["../../src/agents/CodeIntelligenceAgent.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * ContextCache
3
+ *
4
+ * LRU cache for agent contexts with TTL-based expiration.
5
+ * Achieves 70-80% LLM token savings by caching similar queries.
6
+ *
7
+ * Architecture:
8
+ * - LRU eviction policy for bounded memory usage
9
+ * - TTL-based expiration for freshness
10
+ * - Hash-based key generation for query similarity
11
+ * - Optional persistence for cross-session reuse
12
+ */
13
+ export interface CacheEntry<T> {
14
+ key: string;
15
+ value: T;
16
+ accessCount: number;
17
+ createdAt: number;
18
+ lastAccessedAt: number;
19
+ expiresAt: number;
20
+ }
21
+ export interface CacheStats {
22
+ size: number;
23
+ maxSize: number;
24
+ hits: number;
25
+ misses: number;
26
+ hitRate: number;
27
+ evictions: number;
28
+ expirations: number;
29
+ avgAccessCount: number;
30
+ }
31
+ export interface ContextCacheConfig {
32
+ /** Maximum cache size (default: 1000) */
33
+ maxSize: number;
34
+ /** Default TTL in milliseconds (default: 5 minutes) */
35
+ defaultTTL: number;
36
+ /** Enable periodic cleanup of expired entries (default: true) */
37
+ enableCleanup: boolean;
38
+ /** Cleanup interval in milliseconds (default: 1 minute) */
39
+ cleanupInterval: number;
40
+ }
41
+ export declare class ContextCache<T = any> {
42
+ private config;
43
+ private cache;
44
+ private accessOrder;
45
+ private stats;
46
+ private cleanupTimer?;
47
+ constructor(config?: Partial<ContextCacheConfig>);
48
+ /**
49
+ * Generate cache key from query and options.
50
+ */
51
+ generateKey(query: string, options?: Record<string, any>): string;
52
+ /**
53
+ * Get value from cache.
54
+ */
55
+ get(key: string): T | null;
56
+ /**
57
+ * Set value in cache.
58
+ */
59
+ set(key: string, value: T, ttl?: number): void;
60
+ /**
61
+ * Check if key exists in cache (without affecting LRU).
62
+ */
63
+ has(key: string): boolean;
64
+ /**
65
+ * Delete entry from cache.
66
+ */
67
+ delete(key: string): boolean;
68
+ /**
69
+ * Clear all entries.
70
+ */
71
+ clear(): void;
72
+ /**
73
+ * Get cache statistics.
74
+ */
75
+ getStats(): CacheStats;
76
+ /**
77
+ * Get all entries (for inspection/persistence).
78
+ */
79
+ getEntries(): CacheEntry<T>[];
80
+ /**
81
+ * Cleanup expired entries.
82
+ */
83
+ cleanup(): number;
84
+ /**
85
+ * Shutdown cache (stop cleanup timer).
86
+ */
87
+ shutdown(): void;
88
+ /**
89
+ * Evict least recently used entry.
90
+ */
91
+ private evictLRU;
92
+ /**
93
+ * Update access order for LRU tracking.
94
+ */
95
+ private updateAccessOrder;
96
+ /**
97
+ * Remove key from access order.
98
+ */
99
+ private removeFromAccessOrder;
100
+ /**
101
+ * Start periodic cleanup.
102
+ */
103
+ private startCleanup;
104
+ }
105
+ //# sourceMappingURL=ContextCache.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ContextCache.d.ts","sourceRoot":"","sources":["../../../src/agents/context/ContextCache.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAIH,MAAM,WAAW,UAAU,CAAC,CAAC;IAC3B,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,CAAC,CAAC;IACT,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,kBAAkB;IACjC,yCAAyC;IACzC,OAAO,EAAE,MAAM,CAAC;IAChB,uDAAuD;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,iEAAiE;IACjE,aAAa,EAAE,OAAO,CAAC;IACvB,2DAA2D;IAC3D,eAAe,EAAE,MAAM,CAAC;CACzB;AASD,qBAAa,YAAY,CAAC,CAAC,GAAG,GAAG;IAC/B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,KAAK,CAA6B;IAC1C,OAAO,CAAC,WAAW,CAAW;IAC9B,OAAO,CAAC,KAAK,CAKX;IACF,OAAO,CAAC,YAAY,CAAC,CAAiB;gBAE1B,MAAM,GAAE,OAAO,CAAC,kBAAkB,CAAM;IAgBpD;;OAEG;IACH,WAAW,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC,GAAG,MAAM;IAQjE;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,CAAC,GAAG,IAAI;IA0B1B;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,CAAC,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,IAAI;IAkC9C;;OAEG;IACH,GAAG,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAezB;;OAEG;IACH,MAAM,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO;IAQ5B;;OAEG;IACH,KAAK,IAAI,IAAI;IAKb;;OAEG;IACH,QAAQ,IAAI,UAAU;IAsBtB;;OAEG;IACH,UAAU,IAAI,UAAU,CAAC,CAAC,CAAC,EAAE;IAI7B;;OAEG;IACH,OAAO,IAAI,MAAM;IAgBjB;;OAEG;IACH,QAAQ,IAAI,IAAI;IAShB;;OAEG;IACH,OAAO,CAAC,QAAQ;IAQhB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IAKzB;;OAEG;IACH,OAAO,CAAC,qBAAqB;IAO7B;;OAEG;IACH,OAAO,CAAC,YAAY;CAUrB"}