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,64 @@
1
+ /**
2
+ * AST-aware code chunker with semantic preservation
3
+ * Splits code into 256-512 token chunks while preserving function/class boundaries
4
+ */
5
+ import { ChunkingResult, ChunkingConfig, TokenCounter } from './types.js';
6
+ /**
7
+ * Simple word-based token counter (approximation)
8
+ * ~4 characters per token for code
9
+ */
10
+ export declare class SimpleTokenCounter implements TokenCounter {
11
+ count(text: string): number;
12
+ }
13
+ export declare class ASTChunker {
14
+ private parser;
15
+ private tokenCounter;
16
+ private config;
17
+ private splitter;
18
+ constructor(config?: Partial<ChunkingConfig>, tokenCounter?: TokenCounter);
19
+ /**
20
+ * Chunk a file using AST-aware semantic boundaries
21
+ */
22
+ chunkFile(filePath: string, content: string, language?: string): ChunkingResult;
23
+ /**
24
+ * Process lines not covered by parsed entities
25
+ */
26
+ private processUncoveredLines;
27
+ /**
28
+ * Create a module-level chunk (imports, constants, etc.)
29
+ */
30
+ private createModuleChunk;
31
+ /**
32
+ * Add overlap between consecutive chunks
33
+ */
34
+ private addOverlap;
35
+ /**
36
+ * Extract overlap content from chunk
37
+ */
38
+ private extractOverlap;
39
+ /**
40
+ * Fallback to line-based chunking if AST parsing fails
41
+ */
42
+ private fallbackChunking;
43
+ /**
44
+ * Create a fragment chunk (fallback)
45
+ */
46
+ private createFragmentChunk;
47
+ /**
48
+ * Calculate chunking statistics
49
+ */
50
+ private calculateStats;
51
+ /**
52
+ * Generate unique chunk ID
53
+ */
54
+ private generateChunkId;
55
+ /**
56
+ * Get configuration
57
+ */
58
+ getConfig(): ChunkingConfig;
59
+ /**
60
+ * Update configuration
61
+ */
62
+ setConfig(config: Partial<ChunkingConfig>): void;
63
+ }
64
+ //# sourceMappingURL=ASTChunker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ASTChunker.d.ts","sourceRoot":"","sources":["../../../src/code-intelligence/chunking/ASTChunker.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAKH,OAAO,EAEL,cAAc,EACd,cAAc,EACd,YAAY,EAEb,MAAM,YAAY,CAAC;AAGpB;;;GAGG;AACH,qBAAa,kBAAmB,YAAW,YAAY;IACrD,KAAK,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM;CAO5B;AAED,qBAAa,UAAU;IACrB,OAAO,CAAC,MAAM,CAAmB;IACjC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAiB;IAC/B,OAAO,CAAC,QAAQ,CAAgB;gBAEpB,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,EAAE,YAAY,CAAC,EAAE,YAAY;IAwBzE;;OAEG;IACH,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,cAAc;IA0D/E;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA+D7B;;OAEG;IACH,OAAO,CAAC,iBAAiB;IA8BzB;;OAEG;IACH,OAAO,CAAC,UAAU;IA8ClB;;OAEG;IACH,OAAO,CAAC,cAAc;IA0CtB;;OAEG;IACH,OAAO,CAAC,gBAAgB;IA8CxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA+B3B;;OAEG;IACH,OAAO,CAAC,cAAc;IAuCtB;;OAEG;IACH,OAAO,CAAC,eAAe;IAKvB;;OAEG;IACH,SAAS,IAAI,cAAc;IAI3B;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,OAAO,CAAC,cAAc,CAAC,GAAG,IAAI;CAajD"}
@@ -0,0 +1,344 @@
1
+ "use strict";
2
+ /**
3
+ * AST-aware code chunker with semantic preservation
4
+ * Splits code into 256-512 token chunks while preserving function/class boundaries
5
+ */
6
+ Object.defineProperty(exports, "__esModule", { value: true });
7
+ exports.ASTChunker = exports.SimpleTokenCounter = void 0;
8
+ const TreeSitterParser_js_1 = require("../parser/TreeSitterParser.js");
9
+ const ChunkSplitter_js_1 = require("./ChunkSplitter.js");
10
+ const crypto_1 = require("crypto");
11
+ /**
12
+ * Simple word-based token counter (approximation)
13
+ * ~4 characters per token for code
14
+ */
15
+ class SimpleTokenCounter {
16
+ count(text) {
17
+ // Approximate: 4 chars per token
18
+ // This is a rough approximation; for production, use tiktoken
19
+ const chars = text.length;
20
+ const tokens = Math.ceil(chars / 4);
21
+ return tokens;
22
+ }
23
+ }
24
+ exports.SimpleTokenCounter = SimpleTokenCounter;
25
+ class ASTChunker {
26
+ constructor(config, tokenCounter) {
27
+ this.parser = new TreeSitterParser_js_1.TreeSitterParser();
28
+ this.tokenCounter = tokenCounter || new SimpleTokenCounter();
29
+ // Default configuration
30
+ this.config = {
31
+ minTokens: config?.minTokens ?? 256,
32
+ maxTokens: config?.maxTokens ?? 512,
33
+ overlapPercent: config?.overlapPercent ?? 15,
34
+ overlapTokens: config?.overlapTokens ?? 50,
35
+ preserveSemanticBoundaries: config?.preserveSemanticBoundaries ?? true,
36
+ splitLargeEntities: config?.splitLargeEntities ?? true,
37
+ };
38
+ // Calculate overlap tokens if not provided
39
+ if (!config?.overlapTokens && config?.overlapPercent) {
40
+ this.config.overlapTokens = Math.round(this.config.maxTokens * (this.config.overlapPercent / 100));
41
+ }
42
+ this.splitter = new ChunkSplitter_js_1.ChunkSplitter(this.config, this.tokenCounter);
43
+ }
44
+ /**
45
+ * Chunk a file using AST-aware semantic boundaries
46
+ */
47
+ chunkFile(filePath, content, language) {
48
+ // Parse file to extract entities
49
+ const parseResult = this.parser.parseFile(filePath, content, language);
50
+ if (parseResult.errors.length > 0) {
51
+ // Fallback to line-based chunking if parsing fails
52
+ return this.fallbackChunking(filePath, content, language || 'unknown');
53
+ }
54
+ // Sort entities by line number
55
+ const sortedEntities = parseResult.entities.sort((a, b) => a.lineStart - b.lineStart);
56
+ const chunks = [];
57
+ let processedLines = new Set();
58
+ // Process each entity
59
+ for (const entity of sortedEntities) {
60
+ // Skip if already processed (e.g., method inside class)
61
+ if (processedLines.has(entity.lineStart)) {
62
+ continue;
63
+ }
64
+ // Split entity into chunks
65
+ const entityChunks = this.splitter.splitEntity(entity);
66
+ chunks.push(...entityChunks);
67
+ // Mark lines as processed
68
+ for (let i = entity.lineStart; i <= entity.lineEnd; i++) {
69
+ processedLines.add(i);
70
+ }
71
+ }
72
+ // Handle lines not covered by entities (module-level code, imports, etc.)
73
+ const uncoveredChunks = this.processUncoveredLines(filePath, content, language || 'unknown', processedLines);
74
+ chunks.push(...uncoveredChunks);
75
+ // Sort chunks by line number
76
+ chunks.sort((a, b) => a.lineStart - b.lineStart);
77
+ // Add overlap between chunks
78
+ const chunksWithOverlap = this.addOverlap(chunks, content);
79
+ // Calculate statistics
80
+ const stats = this.calculateStats(chunksWithOverlap);
81
+ return {
82
+ chunks: chunksWithOverlap,
83
+ stats,
84
+ };
85
+ }
86
+ /**
87
+ * Process lines not covered by parsed entities
88
+ */
89
+ processUncoveredLines(filePath, content, language, processedLines) {
90
+ const lines = content.split('\n');
91
+ const chunks = [];
92
+ let currentLines = [];
93
+ let currentLineStart = 1;
94
+ for (let i = 0; i < lines.length; i++) {
95
+ const lineNumber = i + 1;
96
+ if (processedLines.has(lineNumber)) {
97
+ // Flush current chunk if any
98
+ if (currentLines.length > 0) {
99
+ const chunkContent = currentLines.join('\n').trim();
100
+ if (chunkContent.length > 0) {
101
+ chunks.push(this.createModuleChunk(filePath, currentLines, currentLineStart, language));
102
+ }
103
+ currentLines = [];
104
+ }
105
+ continue;
106
+ }
107
+ currentLines.push(lines[i]);
108
+ // Check if we should create a chunk
109
+ const currentContent = currentLines.join('\n');
110
+ const tokenCount = this.tokenCounter.count(currentContent);
111
+ if (tokenCount >= this.config.maxTokens) {
112
+ chunks.push(this.createModuleChunk(filePath, currentLines, currentLineStart, language));
113
+ currentLines = [];
114
+ currentLineStart = i + 2;
115
+ }
116
+ else if (currentLines.length === 1) {
117
+ currentLineStart = lineNumber;
118
+ }
119
+ }
120
+ // Flush remaining lines
121
+ if (currentLines.length > 0) {
122
+ const chunkContent = currentLines.join('\n').trim();
123
+ if (chunkContent.length > 0) {
124
+ chunks.push(this.createModuleChunk(filePath, currentLines, currentLineStart, language));
125
+ }
126
+ }
127
+ return chunks;
128
+ }
129
+ /**
130
+ * Create a module-level chunk (imports, constants, etc.)
131
+ */
132
+ createModuleChunk(filePath, lines, lineStart, language) {
133
+ const content = lines.join('\n');
134
+ const tokenCount = this.tokenCounter.count(content);
135
+ const lineEnd = lineStart + lines.length - 1;
136
+ return {
137
+ id: this.generateChunkId(filePath, lineStart),
138
+ content,
139
+ filePath,
140
+ language,
141
+ lineStart,
142
+ lineEnd,
143
+ tokenCount,
144
+ entityType: 'module',
145
+ metadata: {
146
+ filePath,
147
+ language,
148
+ lineStart,
149
+ lineEnd,
150
+ entityType: 'module',
151
+ isComplete: true,
152
+ },
153
+ };
154
+ }
155
+ /**
156
+ * Add overlap between consecutive chunks
157
+ */
158
+ addOverlap(chunks, fileContent) {
159
+ if (chunks.length <= 1) {
160
+ return chunks;
161
+ }
162
+ const overlapTokens = this.config.overlapTokens || 50;
163
+ const chunksWithOverlap = [];
164
+ for (let i = 0; i < chunks.length; i++) {
165
+ const chunk = chunks[i];
166
+ let content = chunk.content;
167
+ let originalTokenCount = chunk.tokenCount;
168
+ // Add overlap from previous chunk
169
+ if (i > 0) {
170
+ const prevChunk = chunks[i - 1];
171
+ const overlapContent = this.extractOverlap(prevChunk.content, overlapTokens, 'end');
172
+ if (overlapContent && overlapContent.trim()) {
173
+ content = overlapContent + '\n' + content;
174
+ chunk.metadata.hasOverlapStart = true;
175
+ chunk.metadata.overlapTokens = this.tokenCounter.count(overlapContent);
176
+ }
177
+ }
178
+ // Add overlap to next chunk (will be prepended when processing next chunk)
179
+ // This is already handled in the previous chunk's loop
180
+ chunksWithOverlap.push({
181
+ ...chunk,
182
+ content,
183
+ tokenCount: this.tokenCounter.count(content),
184
+ metadata: {
185
+ ...chunk.metadata,
186
+ originalTokenCount,
187
+ },
188
+ });
189
+ }
190
+ return chunksWithOverlap;
191
+ }
192
+ /**
193
+ * Extract overlap content from chunk
194
+ */
195
+ extractOverlap(content, targetTokens, position) {
196
+ const lines = content.split('\n');
197
+ if (position === 'end') {
198
+ // Extract from end
199
+ let overlapLines = [];
200
+ let tokens = 0;
201
+ for (let i = lines.length - 1; i >= 0; i--) {
202
+ overlapLines.unshift(lines[i]);
203
+ const overlapContent = overlapLines.join('\n');
204
+ tokens = this.tokenCounter.count(overlapContent);
205
+ if (tokens >= targetTokens) {
206
+ break;
207
+ }
208
+ }
209
+ return overlapLines.length > 0 ? overlapLines.join('\n') : null;
210
+ }
211
+ else {
212
+ // Extract from start
213
+ let overlapLines = [];
214
+ let tokens = 0;
215
+ for (let i = 0; i < lines.length; i++) {
216
+ overlapLines.push(lines[i]);
217
+ const overlapContent = overlapLines.join('\n');
218
+ tokens = this.tokenCounter.count(overlapContent);
219
+ if (tokens >= targetTokens) {
220
+ break;
221
+ }
222
+ }
223
+ return overlapLines.length > 0 ? overlapLines.join('\n') : null;
224
+ }
225
+ }
226
+ /**
227
+ * Fallback to line-based chunking if AST parsing fails
228
+ */
229
+ fallbackChunking(filePath, content, language) {
230
+ const lines = content.split('\n');
231
+ const chunks = [];
232
+ let currentLines = [];
233
+ let currentLineStart = 1;
234
+ for (let i = 0; i < lines.length; i++) {
235
+ currentLines.push(lines[i]);
236
+ const currentContent = currentLines.join('\n');
237
+ const tokenCount = this.tokenCounter.count(currentContent);
238
+ if (tokenCount >= this.config.maxTokens) {
239
+ chunks.push(this.createFragmentChunk(filePath, currentLines, currentLineStart, language));
240
+ currentLines = [];
241
+ currentLineStart = i + 2;
242
+ }
243
+ else if (currentLines.length === 1) {
244
+ currentLineStart = i + 1;
245
+ }
246
+ }
247
+ // Flush remaining lines
248
+ if (currentLines.length > 0) {
249
+ chunks.push(this.createFragmentChunk(filePath, currentLines, currentLineStart, language));
250
+ }
251
+ const stats = this.calculateStats(chunks);
252
+ return {
253
+ chunks,
254
+ stats,
255
+ };
256
+ }
257
+ /**
258
+ * Create a fragment chunk (fallback)
259
+ */
260
+ createFragmentChunk(filePath, lines, lineStart, language) {
261
+ const content = lines.join('\n');
262
+ const tokenCount = this.tokenCounter.count(content);
263
+ const lineEnd = lineStart + lines.length - 1;
264
+ return {
265
+ id: this.generateChunkId(filePath, lineStart),
266
+ content,
267
+ filePath,
268
+ language,
269
+ lineStart,
270
+ lineEnd,
271
+ tokenCount,
272
+ entityType: 'fragment',
273
+ metadata: {
274
+ filePath,
275
+ language,
276
+ lineStart,
277
+ lineEnd,
278
+ entityType: 'fragment',
279
+ isComplete: false,
280
+ isFallback: true,
281
+ },
282
+ };
283
+ }
284
+ /**
285
+ * Calculate chunking statistics
286
+ */
287
+ calculateStats(chunks) {
288
+ const totalChunks = chunks.length;
289
+ if (totalChunks === 0) {
290
+ return {
291
+ totalChunks: 0,
292
+ avgTokens: 0,
293
+ minTokens: 0,
294
+ maxTokens: 0,
295
+ semanticPreservation: 0,
296
+ totalTokens: 0,
297
+ };
298
+ }
299
+ // Use original token count if available (before overlap)
300
+ const tokenCounts = chunks.map((c) => c.metadata.originalTokenCount || c.tokenCount);
301
+ const totalTokens = tokenCounts.reduce((sum, t) => sum + t, 0);
302
+ const avgTokens = totalTokens / totalChunks;
303
+ const minTokens = Math.min(...tokenCounts);
304
+ const maxTokens = Math.max(...tokenCounts);
305
+ // Calculate semantic preservation (% of chunks with complete semantic units)
306
+ const completeChunks = chunks.filter((c) => c.metadata.isComplete === true).length;
307
+ const semanticPreservation = (completeChunks / totalChunks) * 100;
308
+ return {
309
+ totalChunks,
310
+ avgTokens: Math.round(avgTokens),
311
+ minTokens,
312
+ maxTokens,
313
+ semanticPreservation: Math.round(semanticPreservation * 100) / 100,
314
+ totalTokens,
315
+ };
316
+ }
317
+ /**
318
+ * Generate unique chunk ID
319
+ */
320
+ generateChunkId(filePath, lineStart) {
321
+ const content = `${filePath}:${lineStart}:${Date.now()}`;
322
+ return (0, crypto_1.createHash)('sha256').update(content).digest('hex').substring(0, 16);
323
+ }
324
+ /**
325
+ * Get configuration
326
+ */
327
+ getConfig() {
328
+ return { ...this.config };
329
+ }
330
+ /**
331
+ * Update configuration
332
+ */
333
+ setConfig(config) {
334
+ this.config = { ...this.config, ...config };
335
+ // Recalculate overlap tokens if needed
336
+ if (config.overlapPercent && !config.overlapTokens) {
337
+ this.config.overlapTokens = Math.round(this.config.maxTokens * (this.config.overlapPercent / 100));
338
+ }
339
+ // Update splitter config
340
+ this.splitter = new ChunkSplitter_js_1.ChunkSplitter(this.config, this.tokenCounter);
341
+ }
342
+ }
343
+ exports.ASTChunker = ASTChunker;
344
+ //# sourceMappingURL=ASTChunker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ASTChunker.js","sourceRoot":"","sources":["../../../src/code-intelligence/chunking/ASTChunker.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,48 @@
1
+ /**
2
+ * Recursive splitter for large code entities
3
+ * Splits entities >512 tokens while preserving semantic boundaries
4
+ */
5
+ import { CodeEntity } from '../parser/types.js';
6
+ import { CodeChunk, ChunkingConfig, TokenCounter } from './types.js';
7
+ export declare class ChunkSplitter {
8
+ private config;
9
+ private tokenCounter;
10
+ constructor(config: ChunkingConfig, tokenCounter: TokenCounter);
11
+ /**
12
+ * Split a large entity into smaller chunks recursively
13
+ */
14
+ splitEntity(entity: CodeEntity): CodeChunk[];
15
+ /**
16
+ * Recursively split entity at semantic boundaries
17
+ */
18
+ private recursiveSplit;
19
+ /**
20
+ * Find semantic boundaries in code (function/class boundaries, blank lines, etc.)
21
+ */
22
+ private findSemanticBoundaries;
23
+ /**
24
+ * Get language-specific regex patterns for boundary detection
25
+ */
26
+ private getLanguagePatterns;
27
+ /**
28
+ * Split entity by line count when no semantic boundaries work
29
+ */
30
+ private splitByLines;
31
+ /**
32
+ * Create a chunk from entity
33
+ */
34
+ private createChunk;
35
+ /**
36
+ * Create chunk from lines
37
+ */
38
+ private createChunkFromLines;
39
+ /**
40
+ * Map parser entity type to chunk entity type
41
+ */
42
+ private mapEntityType;
43
+ /**
44
+ * Generate unique chunk ID
45
+ */
46
+ private generateChunkId;
47
+ }
48
+ //# sourceMappingURL=ChunkSplitter.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ChunkSplitter.d.ts","sourceRoot":"","sources":["../../../src/code-intelligence/chunking/ChunkSplitter.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,UAAU,EAAE,MAAM,oBAAoB,CAAC;AAChD,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,YAAY,EAAc,MAAM,YAAY,CAAC;AAGjF,qBAAa,aAAa;IAEtB,OAAO,CAAC,MAAM;IACd,OAAO,CAAC,YAAY;gBADZ,MAAM,EAAE,cAAc,EACtB,YAAY,EAAE,YAAY;IAGpC;;OAEG;IACH,WAAW,CAAC,MAAM,EAAE,UAAU,GAAG,SAAS,EAAE;IAiB5C;;OAEG;IACH,OAAO,CAAC,cAAc;IA4EtB;;OAEG;IACH,OAAO,CAAC,sBAAsB;IAwC9B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAoD3B;;OAEG;IACH,OAAO,CAAC,YAAY;IA4DpB;;OAEG;IACH,OAAO,CAAC,WAAW;IAmCnB;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAsC5B;;OAEG;IACH,OAAO,CAAC,aAAa;IAYrB;;OAEG;IACH,OAAO,CAAC,eAAe;CAIxB"}