agentic-qe 1.0.5 → 1.2.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 (383) hide show
  1. package/.claude/agents/qe-coverage-analyzer.md +8 -0
  2. package/.claude/agents/qe-flaky-test-hunter.md +9 -1
  3. package/.claude/agents/qe-quality-analyzer.md +405 -0
  4. package/.claude/agents/qe-test-generator.md +7 -0
  5. package/.claude/agents/reasoning/agent.md +816 -0
  6. package/.claude/agents/reasoning/goal-planner.md +73 -0
  7. package/.claude/settings.json +21 -20
  8. package/.claude/skills/README.md +124 -0
  9. package/.claude/skills/agentdb-advanced/SKILL.md +550 -0
  10. package/.claude/skills/agentdb-learning/SKILL.md +545 -0
  11. package/.claude/skills/agentdb-memory-patterns/SKILL.md +339 -0
  12. package/.claude/skills/agentdb-optimization/SKILL.md +509 -0
  13. package/.claude/skills/agentdb-vector-search/SKILL.md +339 -0
  14. package/.claude/skills/agentic-quality-engineering/SKILL.md +604 -0
  15. package/.claude/skills/api-testing-patterns/SKILL.md +686 -0
  16. package/.claude/skills/bug-reporting-excellence/SKILL.md +632 -0
  17. package/.claude/skills/code-review-quality/SKILL.md +683 -0
  18. package/.claude/skills/consultancy-practices/SKILL.md +540 -0
  19. package/.claude/skills/context-driven-testing/SKILL.md +466 -0
  20. package/.claude/skills/exploratory-testing-advanced/SKILL.md +676 -0
  21. package/.claude/skills/flow-nexus-neural/SKILL.md +738 -0
  22. package/.claude/skills/flow-nexus-platform/SKILL.md +1157 -0
  23. package/.claude/skills/flow-nexus-swarm/SKILL.md +610 -0
  24. package/.claude/skills/github-code-review/SKILL.md +1140 -0
  25. package/.claude/skills/github-multi-repo/SKILL.md +874 -0
  26. package/.claude/skills/github-project-management/SKILL.md +1277 -0
  27. package/.claude/skills/github-release-management/SKILL.md +1081 -0
  28. package/.claude/skills/github-workflow-automation/SKILL.md +1065 -0
  29. package/.claude/skills/hive-mind-advanced/SKILL.md +712 -0
  30. package/.claude/skills/holistic-testing-pact/SKILL.md +225 -0
  31. package/.claude/skills/hooks-automation/SKILL.md +1201 -0
  32. package/.claude/skills/pair-programming/SKILL.md +1202 -0
  33. package/.claude/skills/performance-analysis/SKILL.md +563 -0
  34. package/.claude/skills/performance-testing/SKILL.md +662 -0
  35. package/.claude/skills/quality-metrics/SKILL.md +592 -0
  36. package/.claude/skills/reasoningbank-agentdb/SKILL.md +446 -0
  37. package/.claude/skills/reasoningbank-intelligence/SKILL.md +201 -0
  38. package/.claude/skills/refactoring-patterns/SKILL.md +778 -0
  39. package/.claude/skills/risk-based-testing/SKILL.md +721 -0
  40. package/.claude/skills/security-testing/SKILL.md +651 -0
  41. package/.claude/skills/skill-builder/SKILL.md +910 -0
  42. package/.claude/skills/sparc-methodology/SKILL.md +1115 -0
  43. package/.claude/skills/stream-chain/SKILL.md +563 -0
  44. package/.claude/skills/swarm-advanced/SKILL.md +973 -0
  45. package/.claude/skills/swarm-orchestration/SKILL.md +179 -0
  46. package/.claude/skills/tdd-london-chicago/SKILL.md +567 -0
  47. package/.claude/skills/technical-writing/SKILL.md +235 -0
  48. package/.claude/skills/test-automation-strategy/SKILL.md +842 -0
  49. package/.claude/skills/verification-quality/SKILL.md +649 -0
  50. package/.claude/skills/xp-practices/SKILL.md +671 -0
  51. package/.claude/statusline-command.sh +176 -0
  52. package/CHANGELOG.md +645 -1
  53. package/CONTRIBUTING.md +51 -0
  54. package/README.md +758 -162
  55. package/bin/aqe +90 -938
  56. package/config/improvement-loop.config.ts +323 -0
  57. package/config/neural-agent.config.ts +197 -0
  58. package/dist/adapters/MemoryStoreAdapter.d.ts +16 -16
  59. package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
  60. package/dist/adapters/MemoryStoreAdapter.js +22 -16
  61. package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
  62. package/dist/agents/BaseAgent.d.ts +69 -0
  63. package/dist/agents/BaseAgent.d.ts.map +1 -1
  64. package/dist/agents/BaseAgent.js +382 -1
  65. package/dist/agents/BaseAgent.js.map +1 -1
  66. package/dist/agents/CoverageAnalyzerAgent.d.ts +69 -3
  67. package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
  68. package/dist/agents/CoverageAnalyzerAgent.js +418 -51
  69. package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
  70. package/dist/agents/DeploymentReadinessAgent.d.ts.map +1 -1
  71. package/dist/agents/DeploymentReadinessAgent.js +13 -13
  72. package/dist/agents/DeploymentReadinessAgent.js.map +1 -1
  73. package/dist/agents/FlakyTestHunterAgent.d.ts +76 -4
  74. package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
  75. package/dist/agents/FlakyTestHunterAgent.js +375 -13
  76. package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
  77. package/dist/agents/FleetCommanderAgent.d.ts.map +1 -1
  78. package/dist/agents/FleetCommanderAgent.js +2 -2
  79. package/dist/agents/FleetCommanderAgent.js.map +1 -1
  80. package/dist/agents/LearningAgent.d.ts +84 -0
  81. package/dist/agents/LearningAgent.d.ts.map +1 -0
  82. package/dist/agents/LearningAgent.js +197 -0
  83. package/dist/agents/LearningAgent.js.map +1 -0
  84. package/dist/agents/NeuralAgentExtension.d.ts +117 -0
  85. package/dist/agents/NeuralAgentExtension.d.ts.map +1 -0
  86. package/dist/agents/NeuralAgentExtension.js +288 -0
  87. package/dist/agents/NeuralAgentExtension.js.map +1 -0
  88. package/dist/agents/PerformanceTesterAgent.d.ts.map +1 -1
  89. package/dist/agents/PerformanceTesterAgent.js +4 -3
  90. package/dist/agents/PerformanceTesterAgent.js.map +1 -1
  91. package/dist/agents/ProductionIntelligenceAgent.js +7 -7
  92. package/dist/agents/ProductionIntelligenceAgent.js.map +1 -1
  93. package/dist/agents/QualityAnalyzerAgent.d.ts.map +1 -1
  94. package/dist/agents/QualityAnalyzerAgent.js +2 -2
  95. package/dist/agents/QualityAnalyzerAgent.js.map +1 -1
  96. package/dist/agents/QualityGateAgent.js +5 -5
  97. package/dist/agents/QualityGateAgent.js.map +1 -1
  98. package/dist/agents/RegressionRiskAnalyzerAgent.js +7 -7
  99. package/dist/agents/RegressionRiskAnalyzerAgent.js.map +1 -1
  100. package/dist/agents/RequirementsValidatorAgent.d.ts.map +1 -1
  101. package/dist/agents/RequirementsValidatorAgent.js +1 -1
  102. package/dist/agents/RequirementsValidatorAgent.js.map +1 -1
  103. package/dist/agents/SecurityScannerAgent.js +6 -6
  104. package/dist/agents/SecurityScannerAgent.js.map +1 -1
  105. package/dist/agents/TestExecutorAgent.d.ts.map +1 -1
  106. package/dist/agents/TestExecutorAgent.js +1 -3
  107. package/dist/agents/TestExecutorAgent.js.map +1 -1
  108. package/dist/agents/TestGeneratorAgent.d.ts +53 -2
  109. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  110. package/dist/agents/TestGeneratorAgent.js +372 -31
  111. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  112. package/dist/agents/mixins/NeuralCapableMixin.d.ts +130 -0
  113. package/dist/agents/mixins/NeuralCapableMixin.d.ts.map +1 -0
  114. package/dist/agents/mixins/NeuralCapableMixin.js +358 -0
  115. package/dist/agents/mixins/NeuralCapableMixin.js.map +1 -0
  116. package/dist/agents/mixins/QUICCapableMixin.d.ts +34 -0
  117. package/dist/agents/mixins/QUICCapableMixin.d.ts.map +1 -0
  118. package/dist/agents/mixins/QUICCapableMixin.js +346 -0
  119. package/dist/agents/mixins/QUICCapableMixin.js.map +1 -0
  120. package/dist/cli/commands/agent/index.d.ts +5 -0
  121. package/dist/cli/commands/agent/index.d.ts.map +1 -1
  122. package/dist/cli/commands/agent/index.js +11 -6
  123. package/dist/cli/commands/agent/index.js.map +1 -1
  124. package/dist/cli/commands/agent/kill.d.ts +13 -0
  125. package/dist/cli/commands/agent/kill.d.ts.map +1 -0
  126. package/dist/cli/commands/agent/kill.js +65 -0
  127. package/dist/cli/commands/agent/kill.js.map +1 -0
  128. package/dist/cli/commands/agent/list.d.ts +19 -0
  129. package/dist/cli/commands/agent/list.d.ts.map +1 -0
  130. package/dist/cli/commands/agent/list.js +92 -0
  131. package/dist/cli/commands/agent/list.js.map +1 -0
  132. package/dist/cli/commands/agent/logs.d.ts +14 -0
  133. package/dist/cli/commands/agent/logs.d.ts.map +1 -0
  134. package/dist/cli/commands/agent/logs.js +77 -0
  135. package/dist/cli/commands/agent/logs.js.map +1 -0
  136. package/dist/cli/commands/agent/metrics.d.ts +21 -0
  137. package/dist/cli/commands/agent/metrics.d.ts.map +1 -0
  138. package/dist/cli/commands/agent/metrics.js +87 -0
  139. package/dist/cli/commands/agent/metrics.js.map +1 -0
  140. package/dist/cli/commands/agent/spawn.d.ts +28 -0
  141. package/dist/cli/commands/agent/spawn.d.ts.map +1 -0
  142. package/dist/cli/commands/agent/spawn.js +83 -0
  143. package/dist/cli/commands/agent/spawn.js.map +1 -0
  144. package/dist/cli/commands/improve/index.d.ts +70 -0
  145. package/dist/cli/commands/improve/index.d.ts.map +1 -0
  146. package/dist/cli/commands/improve/index.js +530 -0
  147. package/dist/cli/commands/improve/index.js.map +1 -0
  148. package/dist/cli/commands/init.d.ts +57 -0
  149. package/dist/cli/commands/init.d.ts.map +1 -1
  150. package/dist/cli/commands/init.js +1127 -42
  151. package/dist/cli/commands/init.js.map +1 -1
  152. package/dist/cli/commands/learn/index.d.ts +68 -0
  153. package/dist/cli/commands/learn/index.d.ts.map +1 -0
  154. package/dist/cli/commands/learn/index.js +431 -0
  155. package/dist/cli/commands/learn/index.js.map +1 -0
  156. package/dist/cli/commands/patterns/index.d.ts +75 -0
  157. package/dist/cli/commands/patterns/index.d.ts.map +1 -0
  158. package/dist/cli/commands/patterns/index.js +502 -0
  159. package/dist/cli/commands/patterns/index.js.map +1 -0
  160. package/dist/cli/commands/skills/index.d.ts +51 -0
  161. package/dist/cli/commands/skills/index.d.ts.map +1 -0
  162. package/dist/cli/commands/skills/index.js +364 -0
  163. package/dist/cli/commands/skills/index.js.map +1 -0
  164. package/dist/cli/index.js +458 -8
  165. package/dist/cli/index.js.map +1 -1
  166. package/dist/core/EventBus.d.ts +38 -0
  167. package/dist/core/EventBus.d.ts.map +1 -1
  168. package/dist/core/EventBus.js +176 -31
  169. package/dist/core/EventBus.js.map +1 -1
  170. package/dist/core/FleetManager.d.ts +35 -1
  171. package/dist/core/FleetManager.d.ts.map +1 -1
  172. package/dist/core/FleetManager.js +121 -45
  173. package/dist/core/FleetManager.js.map +1 -1
  174. package/dist/core/MemoryManager.d.ts +19 -1
  175. package/dist/core/MemoryManager.d.ts.map +1 -1
  176. package/dist/core/MemoryManager.js +25 -1
  177. package/dist/core/MemoryManager.js.map +1 -1
  178. package/dist/core/embeddings/EmbeddingCache.d.ts +134 -0
  179. package/dist/core/embeddings/EmbeddingCache.d.ts.map +1 -0
  180. package/dist/core/embeddings/EmbeddingCache.js +239 -0
  181. package/dist/core/embeddings/EmbeddingCache.js.map +1 -0
  182. package/dist/core/embeddings/EmbeddingGenerator.d.ts +224 -0
  183. package/dist/core/embeddings/EmbeddingGenerator.d.ts.map +1 -0
  184. package/dist/core/embeddings/EmbeddingGenerator.js +459 -0
  185. package/dist/core/embeddings/EmbeddingGenerator.js.map +1 -0
  186. package/dist/core/embeddings/index.d.ts +15 -0
  187. package/dist/core/embeddings/index.d.ts.map +1 -0
  188. package/dist/core/embeddings/index.js +22 -0
  189. package/dist/core/embeddings/index.js.map +1 -0
  190. package/dist/core/memory/AgentDBIntegration.d.ts +35 -0
  191. package/dist/core/memory/AgentDBIntegration.d.ts.map +1 -0
  192. package/dist/core/memory/AgentDBIntegration.js +75 -0
  193. package/dist/core/memory/AgentDBIntegration.js.map +1 -0
  194. package/dist/core/memory/AgentDBManager.d.ts +200 -0
  195. package/dist/core/memory/AgentDBManager.d.ts.map +1 -0
  196. package/dist/core/memory/AgentDBManager.js +263 -0
  197. package/dist/core/memory/AgentDBManager.js.map +1 -0
  198. package/dist/core/memory/AgentDBService.d.ts +160 -0
  199. package/dist/core/memory/AgentDBService.d.ts.map +1 -0
  200. package/dist/core/memory/AgentDBService.js +450 -0
  201. package/dist/core/memory/AgentDBService.js.map +1 -0
  202. package/dist/core/memory/RealAgentDBAdapter.d.ts +51 -0
  203. package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -0
  204. package/dist/core/memory/RealAgentDBAdapter.js +230 -0
  205. package/dist/core/memory/RealAgentDBAdapter.js.map +1 -0
  206. package/dist/core/memory/ReasoningBankAdapter.d.ts +58 -0
  207. package/dist/core/memory/ReasoningBankAdapter.d.ts.map +1 -0
  208. package/dist/core/memory/ReasoningBankAdapter.js +80 -0
  209. package/dist/core/memory/ReasoningBankAdapter.js.map +1 -0
  210. package/dist/core/memory/SwarmMemoryManager.d.ts +79 -2
  211. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  212. package/dist/core/memory/SwarmMemoryManager.js +243 -52
  213. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  214. package/dist/core/memory/index.d.ts +4 -0
  215. package/dist/core/memory/index.d.ts.map +1 -1
  216. package/dist/core/memory/index.js +9 -1
  217. package/dist/core/memory/index.js.map +1 -1
  218. package/dist/core/neural/NeuralTrainer.d.ts +137 -0
  219. package/dist/core/neural/NeuralTrainer.d.ts.map +1 -0
  220. package/dist/core/neural/NeuralTrainer.js +543 -0
  221. package/dist/core/neural/NeuralTrainer.js.map +1 -0
  222. package/dist/core/neural/index.d.ts +8 -0
  223. package/dist/core/neural/index.d.ts.map +1 -0
  224. package/dist/core/neural/index.js +24 -0
  225. package/dist/core/neural/index.js.map +1 -0
  226. package/dist/core/neural/types.d.ts +216 -0
  227. package/dist/core/neural/types.d.ts.map +1 -0
  228. package/dist/core/neural/types.js +8 -0
  229. package/dist/core/neural/types.js.map +1 -0
  230. package/dist/core/security/CertificateValidator.d.ts +130 -0
  231. package/dist/core/security/CertificateValidator.d.ts.map +1 -0
  232. package/dist/core/security/CertificateValidator.js +376 -0
  233. package/dist/core/security/CertificateValidator.js.map +1 -0
  234. package/dist/core/transport/QUICTransport.d.ts +62 -0
  235. package/dist/core/transport/QUICTransport.d.ts.map +1 -0
  236. package/dist/core/transport/QUICTransport.js +381 -0
  237. package/dist/core/transport/QUICTransport.js.map +1 -0
  238. package/dist/core/transport/SecureQUICTransport.d.ts +71 -0
  239. package/dist/core/transport/SecureQUICTransport.d.ts.map +1 -0
  240. package/dist/core/transport/SecureQUICTransport.js +253 -0
  241. package/dist/core/transport/SecureQUICTransport.js.map +1 -0
  242. package/dist/index.d.ts +10 -0
  243. package/dist/index.d.ts.map +1 -1
  244. package/dist/index.js +10 -0
  245. package/dist/index.js.map +1 -1
  246. package/dist/learning/AdvancedFeatureExtractor.d.ts +123 -0
  247. package/dist/learning/AdvancedFeatureExtractor.d.ts.map +1 -0
  248. package/dist/learning/AdvancedFeatureExtractor.js +423 -0
  249. package/dist/learning/AdvancedFeatureExtractor.js.map +1 -0
  250. package/dist/learning/FlakyFixRecommendations.d.ts +40 -0
  251. package/dist/learning/FlakyFixRecommendations.d.ts.map +1 -0
  252. package/dist/learning/FlakyFixRecommendations.js +247 -0
  253. package/dist/learning/FlakyFixRecommendations.js.map +1 -0
  254. package/dist/learning/FlakyPredictionModel.d.ts +67 -0
  255. package/dist/learning/FlakyPredictionModel.d.ts.map +1 -0
  256. package/dist/learning/FlakyPredictionModel.js +336 -0
  257. package/dist/learning/FlakyPredictionModel.js.map +1 -0
  258. package/dist/learning/FlakyTestDetector.d.ts +55 -0
  259. package/dist/learning/FlakyTestDetector.d.ts.map +1 -0
  260. package/dist/learning/FlakyTestDetector.js +237 -0
  261. package/dist/learning/FlakyTestDetector.js.map +1 -0
  262. package/dist/learning/ImprovementLoop.d.ts +133 -0
  263. package/dist/learning/ImprovementLoop.d.ts.map +1 -0
  264. package/dist/learning/ImprovementLoop.js +412 -0
  265. package/dist/learning/ImprovementLoop.js.map +1 -0
  266. package/dist/learning/ImprovementWorker.d.ts +83 -0
  267. package/dist/learning/ImprovementWorker.d.ts.map +1 -0
  268. package/dist/learning/ImprovementWorker.js +164 -0
  269. package/dist/learning/ImprovementWorker.js.map +1 -0
  270. package/dist/learning/LearningEngine.d.ts +144 -0
  271. package/dist/learning/LearningEngine.d.ts.map +1 -0
  272. package/dist/learning/LearningEngine.js +531 -0
  273. package/dist/learning/LearningEngine.js.map +1 -0
  274. package/dist/learning/NeuralPatternMatcher.d.ts +184 -0
  275. package/dist/learning/NeuralPatternMatcher.d.ts.map +1 -0
  276. package/dist/learning/NeuralPatternMatcher.js +702 -0
  277. package/dist/learning/NeuralPatternMatcher.js.map +1 -0
  278. package/dist/learning/NeuralTrainer.d.ts +209 -0
  279. package/dist/learning/NeuralTrainer.d.ts.map +1 -0
  280. package/dist/learning/NeuralTrainer.js +478 -0
  281. package/dist/learning/NeuralTrainer.js.map +1 -0
  282. package/dist/learning/PerformanceTracker.d.ts +118 -0
  283. package/dist/learning/PerformanceTracker.d.ts.map +1 -0
  284. package/dist/learning/PerformanceTracker.js +376 -0
  285. package/dist/learning/PerformanceTracker.js.map +1 -0
  286. package/dist/learning/StatisticalAnalysis.d.ts +47 -0
  287. package/dist/learning/StatisticalAnalysis.d.ts.map +1 -0
  288. package/dist/learning/StatisticalAnalysis.js +170 -0
  289. package/dist/learning/StatisticalAnalysis.js.map +1 -0
  290. package/dist/learning/SwarmIntegration.d.ts +107 -0
  291. package/dist/learning/SwarmIntegration.d.ts.map +1 -0
  292. package/dist/learning/SwarmIntegration.js +191 -0
  293. package/dist/learning/SwarmIntegration.js.map +1 -0
  294. package/dist/learning/index.d.ts +16 -0
  295. package/dist/learning/index.d.ts.map +1 -0
  296. package/dist/learning/index.js +32 -0
  297. package/dist/learning/index.js.map +1 -0
  298. package/dist/learning/types.d.ts +289 -0
  299. package/dist/learning/types.d.ts.map +1 -0
  300. package/dist/learning/types.js +25 -0
  301. package/dist/learning/types.js.map +1 -0
  302. package/dist/mcp/MCPToolRegistry.d.ts +34 -0
  303. package/dist/mcp/MCPToolRegistry.d.ts.map +1 -0
  304. package/dist/mcp/MCPToolRegistry.js +48 -0
  305. package/dist/mcp/MCPToolRegistry.js.map +1 -0
  306. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts +175 -0
  307. package/dist/mcp/handlers/phase2/Phase2Tools.d.ts.map +1 -0
  308. package/dist/mcp/handlers/phase2/Phase2Tools.js +693 -0
  309. package/dist/mcp/handlers/phase2/Phase2Tools.js.map +1 -0
  310. package/dist/mcp/server.d.ts +4 -4
  311. package/dist/mcp/server.d.ts.map +1 -1
  312. package/dist/mcp/server.js +94 -0
  313. package/dist/mcp/server.js.map +1 -1
  314. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  315. package/dist/mcp/services/AgentRegistry.js +7 -1
  316. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  317. package/dist/mcp/tools.d.ts +15 -0
  318. package/dist/mcp/tools.d.ts.map +1 -1
  319. package/dist/mcp/tools.js +17 -1
  320. package/dist/mcp/tools.js.map +1 -1
  321. package/dist/reasoning/CodeSignatureGenerator.d.ts +98 -0
  322. package/dist/reasoning/CodeSignatureGenerator.d.ts.map +1 -0
  323. package/dist/reasoning/CodeSignatureGenerator.js +427 -0
  324. package/dist/reasoning/CodeSignatureGenerator.js.map +1 -0
  325. package/dist/reasoning/PatternClassifier.d.ts +98 -0
  326. package/dist/reasoning/PatternClassifier.d.ts.map +1 -0
  327. package/dist/reasoning/PatternClassifier.js +345 -0
  328. package/dist/reasoning/PatternClassifier.js.map +1 -0
  329. package/dist/reasoning/PatternExtractor.d.ts +131 -0
  330. package/dist/reasoning/PatternExtractor.d.ts.map +1 -0
  331. package/dist/reasoning/PatternExtractor.js +539 -0
  332. package/dist/reasoning/PatternExtractor.js.map +1 -0
  333. package/dist/reasoning/PatternMemoryIntegration.d.ts +102 -0
  334. package/dist/reasoning/PatternMemoryIntegration.d.ts.map +1 -0
  335. package/dist/reasoning/PatternMemoryIntegration.js +336 -0
  336. package/dist/reasoning/PatternMemoryIntegration.js.map +1 -0
  337. package/dist/reasoning/QEReasoningBank.d.ts +121 -0
  338. package/dist/reasoning/QEReasoningBank.d.ts.map +1 -0
  339. package/dist/reasoning/QEReasoningBank.js +235 -0
  340. package/dist/reasoning/QEReasoningBank.js.map +1 -0
  341. package/dist/reasoning/TestTemplateCreator.d.ts +95 -0
  342. package/dist/reasoning/TestTemplateCreator.d.ts.map +1 -0
  343. package/dist/reasoning/TestTemplateCreator.js +535 -0
  344. package/dist/reasoning/TestTemplateCreator.js.map +1 -0
  345. package/dist/reasoning/index.d.ts +10 -0
  346. package/dist/reasoning/index.d.ts.map +1 -0
  347. package/dist/reasoning/index.js +31 -0
  348. package/dist/reasoning/index.js.map +1 -0
  349. package/dist/reasoning/types.d.ts +717 -0
  350. package/dist/reasoning/types.d.ts.map +1 -0
  351. package/dist/reasoning/types.js +57 -0
  352. package/dist/reasoning/types.js.map +1 -0
  353. package/dist/transport/QUICTransport.d.ts +340 -0
  354. package/dist/transport/QUICTransport.d.ts.map +1 -0
  355. package/dist/transport/QUICTransport.js +814 -0
  356. package/dist/transport/QUICTransport.js.map +1 -0
  357. package/dist/transport/UDPTransport.d.ts +348 -0
  358. package/dist/transport/UDPTransport.d.ts.map +1 -0
  359. package/dist/transport/UDPTransport.js +820 -0
  360. package/dist/transport/UDPTransport.js.map +1 -0
  361. package/dist/types/errors.d.ts +1 -1
  362. package/dist/types/index.d.ts +41 -0
  363. package/dist/types/index.d.ts.map +1 -1
  364. package/dist/types/index.js +2 -0
  365. package/dist/types/index.js.map +1 -1
  366. package/dist/types/pattern.types.d.ts +364 -0
  367. package/dist/types/pattern.types.d.ts.map +1 -0
  368. package/dist/types/pattern.types.js +60 -0
  369. package/dist/types/pattern.types.js.map +1 -0
  370. package/dist/types/quic.d.ts +339 -0
  371. package/dist/types/quic.d.ts.map +1 -0
  372. package/dist/types/quic.js +48 -0
  373. package/dist/types/quic.js.map +1 -0
  374. package/dist/utils/Config.js +1 -1
  375. package/dist/utils/Config.js.map +1 -1
  376. package/dist/utils/Database.d.ts +14 -0
  377. package/dist/utils/Database.d.ts.map +1 -1
  378. package/dist/utils/Database.js +51 -4
  379. package/dist/utils/Database.js.map +1 -1
  380. package/dist/utils/Logger.d.ts.map +1 -1
  381. package/dist/utils/Logger.js +111 -26
  382. package/dist/utils/Logger.js.map +1 -1
  383. package/package.json +54 -9
@@ -0,0 +1,345 @@
1
+ "use strict";
2
+ /**
3
+ * PatternClassifier - Classify and recommend patterns for code
4
+ * Phase 2 (v1.1.0) - Pattern Extraction Specialist
5
+ *
6
+ * Classifies patterns by type and calculates similarity scores to:
7
+ * - Categorize extracted patterns
8
+ * - Calculate pattern similarity
9
+ * - Recommend patterns for new code
10
+ * - Support pattern-based test generation
11
+ */
12
+ Object.defineProperty(exports, "__esModule", { value: true });
13
+ exports.PatternClassifier = void 0;
14
+ const pattern_types_1 = require("../types/pattern.types");
15
+ const Logger_1 = require("../utils/Logger");
16
+ const CodeSignatureGenerator_1 = require("./CodeSignatureGenerator");
17
+ class PatternClassifier {
18
+ constructor() {
19
+ this.logger = Logger_1.Logger.getInstance();
20
+ this.signatureGenerator = new CodeSignatureGenerator_1.CodeSignatureGenerator();
21
+ this.patterns = new Map();
22
+ }
23
+ /**
24
+ * Load patterns for classification
25
+ */
26
+ loadPatterns(patterns) {
27
+ patterns.forEach(pattern => {
28
+ this.patterns.set(pattern.id, pattern);
29
+ });
30
+ this.logger.info(`Loaded ${patterns.length} patterns for classification`);
31
+ }
32
+ /**
33
+ * Classify a pattern
34
+ */
35
+ async classify(pattern) {
36
+ const type = this.inferPatternType(pattern);
37
+ const confidence = this.calculateClassificationConfidence(pattern, type);
38
+ const reasoning = this.generateReasoning(pattern, type);
39
+ const alternatives = this.getAlternativeClassifications(pattern, type);
40
+ return {
41
+ patternId: pattern.id,
42
+ type,
43
+ confidence,
44
+ reasoning,
45
+ alternatives
46
+ };
47
+ }
48
+ /**
49
+ * Calculate similarity between two patterns
50
+ */
51
+ async calculateSimilarity(pattern1Id, pattern2Id) {
52
+ const pattern1 = this.patterns.get(pattern1Id);
53
+ const pattern2 = this.patterns.get(pattern2Id);
54
+ if (!pattern1 || !pattern2) {
55
+ throw new Error('Pattern not found');
56
+ }
57
+ const details = await this.calculateSimilarityDetails(pattern1, pattern2);
58
+ const score = this.aggregateSimilarityScore(details);
59
+ return {
60
+ pattern1: pattern1Id,
61
+ pattern2: pattern2Id,
62
+ score,
63
+ details
64
+ };
65
+ }
66
+ /**
67
+ * Recommend patterns for given code
68
+ */
69
+ async recommendPatterns(sourceCode, limit = 5) {
70
+ // Generate signature for target code
71
+ const signature = await this.signatureGenerator.generate(sourceCode);
72
+ const recommendations = [];
73
+ // Calculate applicability for each pattern
74
+ for (const pattern of this.patterns.values()) {
75
+ const applicability = this.calculateApplicability(signature, pattern);
76
+ const score = applicability * pattern.confidence;
77
+ recommendations.push({
78
+ patternId: pattern.id,
79
+ patternName: pattern.name,
80
+ score,
81
+ reason: this.generateRecommendationReason(signature, pattern, applicability),
82
+ targetCode: sourceCode,
83
+ applicability
84
+ });
85
+ }
86
+ // Sort by score and return top recommendations
87
+ return recommendations
88
+ .sort((a, b) => b.score - a.score)
89
+ .slice(0, limit);
90
+ }
91
+ /**
92
+ * Find similar patterns
93
+ */
94
+ async findSimilarPatterns(patternId, threshold = 0.7, limit = 5) {
95
+ const targetPattern = this.patterns.get(patternId);
96
+ if (!targetPattern) {
97
+ throw new Error(`Pattern ${patternId} not found`);
98
+ }
99
+ const similarities = [];
100
+ for (const pattern of this.patterns.values()) {
101
+ if (pattern.id === patternId)
102
+ continue;
103
+ const similarity = await this.calculateSimilarity(patternId, pattern.id);
104
+ if (similarity.score >= threshold) {
105
+ similarities.push(similarity);
106
+ }
107
+ }
108
+ return similarities
109
+ .sort((a, b) => b.score - a.score)
110
+ .slice(0, limit);
111
+ }
112
+ /**
113
+ * Infer pattern type from pattern characteristics
114
+ */
115
+ inferPatternType(pattern) {
116
+ const name = pattern.name.toLowerCase();
117
+ const examples = pattern.examples.join(' ').toLowerCase();
118
+ // Check for specific keywords
119
+ if (name.includes('edge') || name.includes('null') || name.includes('undefined')) {
120
+ return pattern_types_1.PatternType.EDGE_CASE;
121
+ }
122
+ if (name.includes('boundary') || name.includes('range') || examples.includes('>=')) {
123
+ return pattern_types_1.PatternType.BOUNDARY_CONDITION;
124
+ }
125
+ if (name.includes('error') || examples.includes('throw') || examples.includes('catch')) {
126
+ return pattern_types_1.PatternType.ERROR_HANDLING;
127
+ }
128
+ if (name.includes('mock') || examples.includes('mock') || examples.includes('stub')) {
129
+ return pattern_types_1.PatternType.MOCK_PATTERN;
130
+ }
131
+ if (name.includes('async') || examples.includes('async') || examples.includes('await')) {
132
+ return pattern_types_1.PatternType.ASYNC_PATTERN;
133
+ }
134
+ if (examples.includes('expect(')) {
135
+ return pattern_types_1.PatternType.ASSERTION_PATTERN;
136
+ }
137
+ if (name.includes('setup') || name.includes('teardown') || name.includes('before') || name.includes('after')) {
138
+ return pattern_types_1.PatternType.SETUP_TEARDOWN;
139
+ }
140
+ // Default to assertion pattern
141
+ return pattern_types_1.PatternType.ASSERTION_PATTERN;
142
+ }
143
+ /**
144
+ * Calculate classification confidence
145
+ */
146
+ calculateClassificationConfidence(pattern, type) {
147
+ let confidence = 0.5; // Base confidence
148
+ const name = pattern.name.toLowerCase();
149
+ const examples = pattern.examples.join(' ').toLowerCase();
150
+ // Increase confidence based on evidence
151
+ const typeKeywords = this.getTypeKeywords(type);
152
+ const matchCount = typeKeywords.filter(kw => name.includes(kw) || examples.includes(kw)).length;
153
+ confidence += (matchCount / typeKeywords.length) * 0.4;
154
+ // Adjust by pattern frequency
155
+ if (pattern.frequency > 5)
156
+ confidence += 0.1;
157
+ return Math.min(confidence, 1.0);
158
+ }
159
+ /**
160
+ * Get keywords for pattern type
161
+ */
162
+ getTypeKeywords(type) {
163
+ const keywordMap = {
164
+ [pattern_types_1.PatternType.EDGE_CASE]: ['edge', 'null', 'undefined', 'empty', 'zero', 'max', 'min'],
165
+ [pattern_types_1.PatternType.BOUNDARY_CONDITION]: ['boundary', 'range', 'limit', 'threshold', '>=', '<='],
166
+ [pattern_types_1.PatternType.ERROR_HANDLING]: ['error', 'throw', 'catch', 'try', 'reject'],
167
+ [pattern_types_1.PatternType.INTEGRATION]: ['integration', 'api', 'database', 'external'],
168
+ [pattern_types_1.PatternType.ASYNC_PATTERN]: ['async', 'await', 'promise', 'then', 'callback'],
169
+ [pattern_types_1.PatternType.MOCK_PATTERN]: ['mock', 'stub', 'spy', 'jest.fn', 'sinon'],
170
+ [pattern_types_1.PatternType.ASSERTION_PATTERN]: ['expect', 'assert', 'should', 'toBe', 'toEqual'],
171
+ [pattern_types_1.PatternType.SETUP_TEARDOWN]: ['setup', 'teardown', 'before', 'after', 'beforeEach'],
172
+ [pattern_types_1.PatternType.DATA_DRIVEN]: ['each', 'table', 'cases', 'data'],
173
+ [pattern_types_1.PatternType.PARAMETERIZED]: ['parameterized', 'test.each', 'describe.each']
174
+ };
175
+ return keywordMap[type] || [];
176
+ }
177
+ /**
178
+ * Generate reasoning for classification
179
+ */
180
+ generateReasoning(pattern, type) {
181
+ const keywords = this.getTypeKeywords(type);
182
+ const name = pattern.name.toLowerCase();
183
+ const matchedKeywords = keywords.filter(kw => name.includes(kw));
184
+ if (matchedKeywords.length > 0) {
185
+ return `Pattern classified as ${type} based on keywords: ${matchedKeywords.join(', ')}`;
186
+ }
187
+ return `Pattern classified as ${type} based on structural analysis`;
188
+ }
189
+ /**
190
+ * Get alternative classifications
191
+ */
192
+ getAlternativeClassifications(pattern, primaryType) {
193
+ const alternatives = [];
194
+ const types = Object.values(pattern_types_1.PatternType).filter(t => t !== primaryType);
195
+ for (const type of types) {
196
+ const confidence = this.calculateClassificationConfidence(pattern, type);
197
+ if (confidence > 0.3) {
198
+ alternatives.push({ type, confidence });
199
+ }
200
+ }
201
+ return alternatives.sort((a, b) => b.confidence - a.confidence).slice(0, 3);
202
+ }
203
+ /**
204
+ * Calculate detailed similarity metrics
205
+ */
206
+ async calculateSimilarityDetails(pattern1, pattern2) {
207
+ const structuralSimilarity = this.calculateStructuralSimilarity(pattern1, pattern2);
208
+ const semanticSimilarity = this.calculateSemanticSimilarity(pattern1, pattern2);
209
+ const typeCompatibility = this.calculateTypeCompatibility(pattern1, pattern2);
210
+ const commonPatterns = this.findCommonPatterns(pattern1, pattern2);
211
+ return {
212
+ structuralSimilarity,
213
+ semanticSimilarity,
214
+ typeCompatibility,
215
+ commonPatterns
216
+ };
217
+ }
218
+ /**
219
+ * Calculate structural similarity
220
+ */
221
+ calculateStructuralSimilarity(pattern1, pattern2) {
222
+ // Compare template structures
223
+ const params1 = pattern1.template.parameters.length;
224
+ const params2 = pattern2.template.parameters.length;
225
+ const paramSimilarity = 1 - Math.abs(params1 - params2) / Math.max(params1, params2, 1);
226
+ const categoryMatch = pattern1.category === pattern2.category ? 1 : 0;
227
+ const frameworkMatch = pattern1.framework === pattern2.framework ? 1 : 0.7;
228
+ return (paramSimilarity + categoryMatch + frameworkMatch) / 3;
229
+ }
230
+ /**
231
+ * Calculate semantic similarity
232
+ */
233
+ calculateSemanticSimilarity(pattern1, pattern2) {
234
+ // Compare names and descriptions
235
+ const name1Words = pattern1.name.toLowerCase().split(/\s+/);
236
+ const name2Words = pattern2.name.toLowerCase().split(/\s+/);
237
+ const commonWords = name1Words.filter(w => name2Words.includes(w));
238
+ const totalWords = new Set([...name1Words, ...name2Words]).size;
239
+ return commonWords.length / Math.max(totalWords, 1);
240
+ }
241
+ /**
242
+ * Calculate type compatibility
243
+ */
244
+ calculateTypeCompatibility(pattern1, pattern2) {
245
+ if (pattern1.type === pattern2.type)
246
+ return 1.0;
247
+ // Check if types are related
248
+ const relatedTypes = {
249
+ [pattern_types_1.PatternType.EDGE_CASE]: [pattern_types_1.PatternType.BOUNDARY_CONDITION],
250
+ [pattern_types_1.PatternType.BOUNDARY_CONDITION]: [pattern_types_1.PatternType.EDGE_CASE],
251
+ [pattern_types_1.PatternType.ERROR_HANDLING]: [pattern_types_1.PatternType.ASYNC_PATTERN],
252
+ [pattern_types_1.PatternType.ASYNC_PATTERN]: [pattern_types_1.PatternType.ERROR_HANDLING, pattern_types_1.PatternType.INTEGRATION],
253
+ [pattern_types_1.PatternType.MOCK_PATTERN]: [pattern_types_1.PatternType.INTEGRATION],
254
+ [pattern_types_1.PatternType.INTEGRATION]: [pattern_types_1.PatternType.ASYNC_PATTERN, pattern_types_1.PatternType.MOCK_PATTERN],
255
+ [pattern_types_1.PatternType.ASSERTION_PATTERN]: [],
256
+ [pattern_types_1.PatternType.SETUP_TEARDOWN]: [],
257
+ [pattern_types_1.PatternType.DATA_DRIVEN]: [pattern_types_1.PatternType.PARAMETERIZED],
258
+ [pattern_types_1.PatternType.PARAMETERIZED]: [pattern_types_1.PatternType.DATA_DRIVEN]
259
+ };
260
+ const related = relatedTypes[pattern1.type] || [];
261
+ return related.includes(pattern2.type) ? 0.5 : 0.0;
262
+ }
263
+ /**
264
+ * Find common patterns
265
+ */
266
+ findCommonPatterns(pattern1, pattern2) {
267
+ const common = [];
268
+ if (pattern1.type === pattern2.type) {
269
+ common.push(`same-type:${pattern1.type}`);
270
+ }
271
+ if (pattern1.framework === pattern2.framework) {
272
+ common.push(`same-framework:${pattern1.framework}`);
273
+ }
274
+ if (pattern1.category === pattern2.category) {
275
+ common.push(`same-category:${pattern1.category}`);
276
+ }
277
+ return common;
278
+ }
279
+ /**
280
+ * Aggregate similarity score
281
+ */
282
+ aggregateSimilarityScore(details) {
283
+ const weights = {
284
+ structural: 0.4,
285
+ semantic: 0.3,
286
+ typeCompatibility: 0.3
287
+ };
288
+ return (details.structuralSimilarity * weights.structural +
289
+ details.semanticSimilarity * weights.semantic +
290
+ details.typeCompatibility * weights.typeCompatibility);
291
+ }
292
+ /**
293
+ * Calculate applicability of pattern to code
294
+ */
295
+ calculateApplicability(signature, pattern) {
296
+ let score = 0.5; // Base score
297
+ // Check for matching patterns in signature
298
+ const matchingPatterns = signature.patterns.filter(p => p.type === pattern.type);
299
+ if (matchingPatterns.length > 0) {
300
+ score += 0.3;
301
+ }
302
+ // Check applicability conditions
303
+ const conditions = pattern.applicabilityConditions;
304
+ const signatureInfo = `${signature.functionSignature} ${signature.nodeTypes.join(' ')}`.toLowerCase();
305
+ const matchedConditions = conditions.filter(condition => signatureInfo.includes(condition.toLowerCase()));
306
+ score += (matchedConditions.length / Math.max(conditions.length, 1)) * 0.2;
307
+ return Math.min(score, 1.0);
308
+ }
309
+ /**
310
+ * Generate recommendation reason
311
+ */
312
+ generateRecommendationReason(signature, pattern, applicability) {
313
+ const reasons = [];
314
+ if (applicability > 0.8) {
315
+ reasons.push('Highly applicable based on code signature');
316
+ }
317
+ else if (applicability > 0.6) {
318
+ reasons.push('Moderately applicable');
319
+ }
320
+ else {
321
+ reasons.push('Potentially applicable');
322
+ }
323
+ if (signature.patterns.some(p => p.type === pattern.type)) {
324
+ reasons.push(`Matching ${pattern.type} pattern detected`);
325
+ }
326
+ if (signature.complexity > 5) {
327
+ reasons.push('High complexity suggests comprehensive testing needed');
328
+ }
329
+ return reasons.join('. ') + '.';
330
+ }
331
+ /**
332
+ * Get all loaded patterns
333
+ */
334
+ getPatterns() {
335
+ return Array.from(this.patterns.values());
336
+ }
337
+ /**
338
+ * Get pattern by ID
339
+ */
340
+ getPattern(id) {
341
+ return this.patterns.get(id);
342
+ }
343
+ }
344
+ exports.PatternClassifier = PatternClassifier;
345
+ //# sourceMappingURL=PatternClassifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternClassifier.js","sourceRoot":"","sources":["../../src/reasoning/PatternClassifier.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,131 @@
1
+ /**
2
+ * PatternExtractor - AST-based pattern extraction from test suites
3
+ * Phase 2 (v1.1.0) - Pattern Extraction Specialist
4
+ *
5
+ * Extracts reusable patterns from existing test suites including:
6
+ * - Edge cases and boundary conditions
7
+ * - Error handling patterns
8
+ * - Mock and assertion patterns
9
+ * - Integration patterns
10
+ *
11
+ * Performance: Process 100+ test files in < 5 seconds
12
+ * Accuracy: > 85% pattern extraction accuracy
13
+ */
14
+ import { TestPattern, PatternExtractionResult, PatternExtractionConfig } from '../types/pattern.types';
15
+ /**
16
+ * Main pattern extractor class
17
+ */
18
+ export declare class PatternExtractor {
19
+ private logger;
20
+ private config;
21
+ private extractedPatterns;
22
+ private patternFrequency;
23
+ constructor(config?: Partial<PatternExtractionConfig>);
24
+ /**
25
+ * Extract patterns from multiple test files
26
+ */
27
+ extractFromFiles(filePaths: string[]): Promise<PatternExtractionResult>;
28
+ /**
29
+ * Extract patterns from a single test file
30
+ */
31
+ extractFromFile(filePath: string): Promise<TestPattern[]>;
32
+ /**
33
+ * Parse source code to AST
34
+ */
35
+ private parseCode;
36
+ /**
37
+ * Detect test framework from source code
38
+ * Checks framework-specific indicators in priority order
39
+ */
40
+ private detectFramework;
41
+ /**
42
+ * Extract edge case patterns
43
+ */
44
+ private extractEdgeCasePatterns;
45
+ /**
46
+ * Extract boundary condition patterns
47
+ */
48
+ private extractBoundaryConditionPatterns;
49
+ /**
50
+ * Extract error handling patterns
51
+ */
52
+ private extractErrorHandlingPatterns;
53
+ /**
54
+ * Extract mock patterns
55
+ */
56
+ private extractMockPatterns;
57
+ /**
58
+ * Extract assertion patterns
59
+ */
60
+ private extractAssertionPatterns;
61
+ /**
62
+ * Extract async patterns
63
+ */
64
+ private extractAsyncPatterns;
65
+ /**
66
+ * Create a test pattern from AST node
67
+ */
68
+ private createPattern;
69
+ /**
70
+ * Traverse AST and apply visitor function
71
+ */
72
+ private traverseAST;
73
+ /**
74
+ * Check if node is a test block
75
+ */
76
+ private isTestBlock;
77
+ /**
78
+ * Get test name from node
79
+ */
80
+ private getTestName;
81
+ /**
82
+ * Get code from node
83
+ */
84
+ private getNodeCode;
85
+ /**
86
+ * Count assertions in test block
87
+ */
88
+ private countAssertions;
89
+ /**
90
+ * Get node location
91
+ */
92
+ private getLocation;
93
+ /**
94
+ * Generate pattern ID
95
+ */
96
+ private generatePatternId;
97
+ /**
98
+ * Infer pattern category from type
99
+ */
100
+ private inferCategory;
101
+ /**
102
+ * Infer applicability conditions
103
+ */
104
+ private inferApplicabilityConditions;
105
+ /**
106
+ * Create empty template (to be filled by TestTemplateCreator)
107
+ */
108
+ private createEmptyTemplate;
109
+ /**
110
+ * Count tests in file
111
+ */
112
+ private countTestsInFile;
113
+ /**
114
+ * Calculate extraction statistics
115
+ */
116
+ private calculateStatistics;
117
+ /**
118
+ * Deduplicate patterns by normalizing names and merging similar patterns
119
+ */
120
+ private deduplicatePatterns;
121
+ /**
122
+ * Normalize pattern name for deduplication
123
+ * Removes trailing numbers, extra whitespace, and normalizes case
124
+ */
125
+ private normalizePatternName;
126
+ /**
127
+ * Get extracted patterns
128
+ */
129
+ getPatterns(): TestPattern[];
130
+ }
131
+ //# sourceMappingURL=PatternExtractor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"PatternExtractor.d.ts","sourceRoot":"","sources":["../../src/reasoning/PatternExtractor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAMH,OAAO,EACL,WAAW,EAMX,uBAAuB,EACvB,uBAAuB,EAIxB,MAAM,wBAAwB,CAAC;AAGhC;;GAEG;AACH,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,MAAM,CAA0B;IACxC,OAAO,CAAC,iBAAiB,CAA2B;IACpD,OAAO,CAAC,gBAAgB,CAAsB;gBAElC,MAAM,CAAC,EAAE,OAAO,CAAC,uBAAuB,CAAC;IAqBrD;;OAEG;IACG,gBAAgB,CAAC,SAAS,EAAE,MAAM,EAAE,GAAG,OAAO,CAAC,uBAAuB,CAAC;IAoC7E;;OAEG;IACG,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IAqB/D;;OAEG;IACH,OAAO,CAAC,SAAS;IAqBjB;;;OAGG;IACH,OAAO,CAAC,eAAe;IA6BvB;;OAEG;IACH,OAAO,CAAC,uBAAuB;IA+B/B;;OAEG;IACH,OAAO,CAAC,gCAAgC;IAgCxC;;OAEG;IACH,OAAO,CAAC,4BAA4B;IA+BpC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IA2B3B;;OAEG;IACH,OAAO,CAAC,wBAAwB;IAwBhC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IA8B5B;;OAEG;IACH,OAAO,CAAC,aAAa;IA+BrB;;OAEG;IACH,OAAO,CAAC,WAAW;IAoBnB;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAUnB;;OAEG;IACH,OAAO,CAAC,WAAW;IAKnB;;OAEG;IACH,OAAO,CAAC,eAAe;IAavB;;OAEG;IACH,OAAO,CAAC,WAAW;IASnB;;OAEG;IACH,OAAO,CAAC,iBAAiB;IASzB;;OAEG;IACH,OAAO,CAAC,aAAa;IAgBrB;;OAEG;IACH,OAAO,CAAC,4BAA4B;IAgBpC;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAY3B;;OAEG;IACH,OAAO,CAAC,gBAAgB;IAKxB;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;OAEG;IACH,OAAO,CAAC,mBAAmB;IAqB3B;;;OAGG;IACH,OAAO,CAAC,oBAAoB;IAQ5B;;OAEG;IACH,WAAW,IAAI,WAAW,EAAE;CAG7B"}