agentic-qe 2.1.1 → 2.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 (167) hide show
  1. package/CHANGELOG.md +213 -0
  2. package/README.md +37 -11
  3. package/dist/agents/index.d.ts.map +1 -1
  4. package/dist/agents/index.js +5 -1
  5. package/dist/agents/index.js.map +1 -1
  6. package/dist/core/MemoryManager.d.ts.map +1 -1
  7. package/dist/core/MemoryManager.js +4 -0
  8. package/dist/core/MemoryManager.js.map +1 -1
  9. package/dist/core/di/AgentDependencies.d.ts +127 -0
  10. package/dist/core/di/AgentDependencies.d.ts.map +1 -0
  11. package/dist/core/di/AgentDependencies.js +251 -0
  12. package/dist/core/di/AgentDependencies.js.map +1 -0
  13. package/dist/core/di/DIContainer.d.ts +149 -0
  14. package/dist/core/di/DIContainer.d.ts.map +1 -0
  15. package/dist/core/di/DIContainer.js +333 -0
  16. package/dist/core/di/DIContainer.js.map +1 -0
  17. package/dist/core/di/index.d.ts +11 -0
  18. package/dist/core/di/index.d.ts.map +1 -0
  19. package/dist/core/di/index.js +22 -0
  20. package/dist/core/di/index.js.map +1 -0
  21. package/dist/core/index.d.ts +1 -0
  22. package/dist/core/index.d.ts.map +1 -1
  23. package/dist/core/index.js +11 -1
  24. package/dist/core/index.js.map +1 -1
  25. package/dist/core/memory/RuVectorPatternStore.d.ts +5 -1
  26. package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
  27. package/dist/core/memory/RuVectorPatternStore.js +43 -1
  28. package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
  29. package/dist/learning/ExperienceSharingProtocol.d.ts +243 -0
  30. package/dist/learning/ExperienceSharingProtocol.d.ts.map +1 -0
  31. package/dist/learning/ExperienceSharingProtocol.js +538 -0
  32. package/dist/learning/ExperienceSharingProtocol.js.map +1 -0
  33. package/dist/learning/LearningEngine.d.ts +101 -1
  34. package/dist/learning/LearningEngine.d.ts.map +1 -1
  35. package/dist/learning/LearningEngine.js +330 -3
  36. package/dist/learning/LearningEngine.js.map +1 -1
  37. package/dist/learning/QLearning.d.ts +38 -125
  38. package/dist/learning/QLearning.d.ts.map +1 -1
  39. package/dist/learning/QLearning.js +46 -267
  40. package/dist/learning/QLearning.js.map +1 -1
  41. package/dist/learning/QLearningLegacy.d.ts +154 -0
  42. package/dist/learning/QLearningLegacy.d.ts.map +1 -0
  43. package/dist/learning/QLearningLegacy.js +337 -0
  44. package/dist/learning/QLearningLegacy.js.map +1 -0
  45. package/dist/learning/algorithms/AbstractRLLearner.d.ts +162 -0
  46. package/dist/learning/algorithms/AbstractRLLearner.d.ts.map +1 -0
  47. package/dist/learning/algorithms/AbstractRLLearner.js +300 -0
  48. package/dist/learning/algorithms/AbstractRLLearner.js.map +1 -0
  49. package/dist/learning/algorithms/ActorCriticLearner.d.ts +201 -0
  50. package/dist/learning/algorithms/ActorCriticLearner.d.ts.map +1 -0
  51. package/dist/learning/algorithms/ActorCriticLearner.js +447 -0
  52. package/dist/learning/algorithms/ActorCriticLearner.js.map +1 -0
  53. package/dist/learning/algorithms/PPOLearner.d.ts +207 -0
  54. package/dist/learning/algorithms/PPOLearner.d.ts.map +1 -0
  55. package/dist/learning/algorithms/PPOLearner.js +490 -0
  56. package/dist/learning/algorithms/PPOLearner.js.map +1 -0
  57. package/dist/learning/algorithms/QLearning.d.ts +68 -0
  58. package/dist/learning/algorithms/QLearning.d.ts.map +1 -0
  59. package/dist/learning/algorithms/QLearning.js +116 -0
  60. package/dist/learning/algorithms/QLearning.js.map +1 -0
  61. package/dist/learning/algorithms/SARSALearner.d.ts +107 -0
  62. package/dist/learning/algorithms/SARSALearner.d.ts.map +1 -0
  63. package/dist/learning/algorithms/SARSALearner.js +252 -0
  64. package/dist/learning/algorithms/SARSALearner.js.map +1 -0
  65. package/dist/learning/algorithms/index.d.ts +29 -0
  66. package/dist/learning/algorithms/index.d.ts.map +1 -0
  67. package/dist/learning/algorithms/index.js +44 -0
  68. package/dist/learning/algorithms/index.js.map +1 -0
  69. package/dist/learning/index.d.ts +3 -0
  70. package/dist/learning/index.d.ts.map +1 -1
  71. package/dist/learning/index.js +15 -1
  72. package/dist/learning/index.js.map +1 -1
  73. package/dist/learning/types.d.ts +2 -0
  74. package/dist/learning/types.d.ts.map +1 -1
  75. package/dist/mcp/handlers/advanced/index.d.ts +3 -2
  76. package/dist/mcp/handlers/advanced/index.d.ts.map +1 -1
  77. package/dist/mcp/handlers/advanced/index.js +4 -5
  78. package/dist/mcp/handlers/advanced/index.js.map +1 -1
  79. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.d.ts +1 -0
  80. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.d.ts.map +1 -1
  81. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js +3 -0
  82. package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js.map +1 -1
  83. package/dist/mcp/handlers/analysis/coverageGapsDetect.d.ts +1 -0
  84. package/dist/mcp/handlers/analysis/coverageGapsDetect.d.ts.map +1 -1
  85. package/dist/mcp/handlers/analysis/coverageGapsDetect.js +3 -0
  86. package/dist/mcp/handlers/analysis/coverageGapsDetect.js.map +1 -1
  87. package/dist/mcp/handlers/analysis/index.d.ts +0 -2
  88. package/dist/mcp/handlers/analysis/index.d.ts.map +1 -1
  89. package/dist/mcp/handlers/analysis/index.js +2 -3
  90. package/dist/mcp/handlers/analysis/index.js.map +1 -1
  91. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.d.ts +1 -0
  92. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.d.ts.map +1 -1
  93. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js +3 -0
  94. package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js.map +1 -1
  95. package/dist/mcp/handlers/prediction/flaky-test-detect.d.ts.map +1 -1
  96. package/dist/mcp/handlers/prediction/flaky-test-detect.js +2 -0
  97. package/dist/mcp/handlers/prediction/flaky-test-detect.js.map +1 -1
  98. package/dist/mcp/handlers/prediction/index.d.ts +0 -2
  99. package/dist/mcp/handlers/prediction/index.d.ts.map +1 -1
  100. package/dist/mcp/handlers/prediction/index.js +2 -3
  101. package/dist/mcp/handlers/prediction/index.js.map +1 -1
  102. package/dist/mcp/handlers/security/index.d.ts +0 -30
  103. package/dist/mcp/handlers/security/index.d.ts.map +1 -1
  104. package/dist/mcp/handlers/security/index.js +5 -31
  105. package/dist/mcp/handlers/security/index.js.map +1 -1
  106. package/dist/mcp/lazy-loader.d.ts +156 -0
  107. package/dist/mcp/lazy-loader.d.ts.map +1 -0
  108. package/dist/mcp/lazy-loader.js +327 -0
  109. package/dist/mcp/lazy-loader.js.map +1 -0
  110. package/dist/mcp/server-instructions.d.ts +18 -0
  111. package/dist/mcp/server-instructions.d.ts.map +1 -0
  112. package/dist/mcp/server-instructions.js +133 -0
  113. package/dist/mcp/server-instructions.js.map +1 -0
  114. package/dist/mcp/server.d.ts.map +1 -1
  115. package/dist/mcp/server.js +236 -49
  116. package/dist/mcp/server.js.map +1 -1
  117. package/dist/mcp/tool-categories.d.ts +105 -0
  118. package/dist/mcp/tool-categories.d.ts.map +1 -0
  119. package/dist/mcp/tool-categories.js +463 -0
  120. package/dist/mcp/tool-categories.js.map +1 -0
  121. package/dist/mcp/tools.d.ts +3 -19
  122. package/dist/mcp/tools.d.ts.map +1 -1
  123. package/dist/mcp/tools.js +260 -647
  124. package/dist/mcp/tools.js.map +1 -1
  125. package/dist/memory/DistributedPatternLibrary.d.ts +159 -0
  126. package/dist/memory/DistributedPatternLibrary.d.ts.map +1 -0
  127. package/dist/memory/DistributedPatternLibrary.js +370 -0
  128. package/dist/memory/DistributedPatternLibrary.js.map +1 -0
  129. package/dist/memory/PatternQualityScorer.d.ts +169 -0
  130. package/dist/memory/PatternQualityScorer.d.ts.map +1 -0
  131. package/dist/memory/PatternQualityScorer.js +327 -0
  132. package/dist/memory/PatternQualityScorer.js.map +1 -0
  133. package/dist/memory/PatternReplicationService.d.ts +187 -0
  134. package/dist/memory/PatternReplicationService.d.ts.map +1 -0
  135. package/dist/memory/PatternReplicationService.js +392 -0
  136. package/dist/memory/PatternReplicationService.js.map +1 -0
  137. package/dist/providers/ClaudeProvider.d.ts +98 -0
  138. package/dist/providers/ClaudeProvider.d.ts.map +1 -0
  139. package/dist/providers/ClaudeProvider.js +418 -0
  140. package/dist/providers/ClaudeProvider.js.map +1 -0
  141. package/dist/providers/ILLMProvider.d.ts +287 -0
  142. package/dist/providers/ILLMProvider.d.ts.map +1 -0
  143. package/dist/providers/ILLMProvider.js +33 -0
  144. package/dist/providers/ILLMProvider.js.map +1 -0
  145. package/dist/providers/LLMProviderFactory.d.ts +154 -0
  146. package/dist/providers/LLMProviderFactory.d.ts.map +1 -0
  147. package/dist/providers/LLMProviderFactory.js +426 -0
  148. package/dist/providers/LLMProviderFactory.js.map +1 -0
  149. package/dist/providers/RuvllmProvider.d.ts +107 -0
  150. package/dist/providers/RuvllmProvider.d.ts.map +1 -0
  151. package/dist/providers/RuvllmProvider.js +417 -0
  152. package/dist/providers/RuvllmProvider.js.map +1 -0
  153. package/dist/providers/index.d.ts +31 -0
  154. package/dist/providers/index.d.ts.map +1 -0
  155. package/dist/providers/index.js +69 -0
  156. package/dist/providers/index.js.map +1 -0
  157. package/dist/utils/IntervalRegistry.d.ts +110 -0
  158. package/dist/utils/IntervalRegistry.d.ts.map +1 -0
  159. package/dist/utils/IntervalRegistry.js +190 -0
  160. package/dist/utils/IntervalRegistry.js.map +1 -0
  161. package/dist/utils/index.d.ts +1 -0
  162. package/dist/utils/index.d.ts.map +1 -1
  163. package/dist/utils/index.js +5 -1
  164. package/dist/utils/index.js.map +1 -1
  165. package/docs/reference/agents.md +33 -0
  166. package/docs/reference/usage.md +60 -0
  167. package/package.json +2 -2
@@ -16,15 +16,17 @@ const index_js_1 = require("@modelcontextprotocol/sdk/server/index.js");
16
16
  const stdio_js_1 = require("@modelcontextprotocol/sdk/server/stdio.js");
17
17
  const types_js_1 = require("@modelcontextprotocol/sdk/types.js");
18
18
  const tools_js_1 = require("./tools.js");
19
+ const lazy_loader_js_1 = require("./lazy-loader.js");
20
+ const tool_categories_js_1 = require("./tool-categories.js");
19
21
  const fleet_init_js_1 = require("./handlers/fleet-init.js");
20
22
  const agent_spawn_js_1 = require("./handlers/agent-spawn.js");
21
- const test_generate_js_1 = require("./handlers/test-generate.js");
23
+ // REMOVED: TestGenerateHandler - use TestGenerateEnhancedHandler instead (Issue #115 Phase 1)
22
24
  const test_execute_js_1 = require("./handlers/test-execute.js");
23
- const quality_analyze_js_1 = require("./handlers/quality-analyze.js");
24
- const predict_defects_js_1 = require("./handlers/predict-defects.js");
25
+ // REMOVED: QualityAnalyzeHandler - use QE_QUALITYGATE_EVALUATE instead (Issue #115 Phase 1)
26
+ // REMOVED: PredictDefectsHandler - use PredictDefectsAIHandler instead (Issue #115 Phase 1)
25
27
  const fleet_status_js_1 = require("./handlers/fleet-status.js");
26
28
  const task_orchestrate_js_1 = require("./handlers/task-orchestrate.js");
27
- const optimize_tests_js_1 = require("./handlers/optimize-tests.js");
29
+ // REMOVED: OptimizeTestsHandler - use TestOptimizeSublinearHandler instead (Issue #115 Phase 1)
28
30
  const memory_store_js_1 = require("./handlers/memory/memory-store.js");
29
31
  const memory_retrieve_js_1 = require("./handlers/memory/memory-retrieve.js");
30
32
  const memory_query_js_1 = require("./handlers/memory/memory-query.js");
@@ -47,21 +49,14 @@ const test_execute_parallel_js_1 = require("./handlers/test/test-execute-paralle
47
49
  const test_optimize_sublinear_js_1 = require("./handlers/test/test-optimize-sublinear.js");
48
50
  const test_report_comprehensive_js_1 = require("./handlers/test/test-report-comprehensive.js");
49
51
  const test_coverage_detailed_js_1 = require("./handlers/test/test-coverage-detailed.js");
50
- const quality_gate_execute_js_1 = require("./handlers/quality/quality-gate-execute.js");
51
- const quality_validate_metrics_js_1 = require("./handlers/quality/quality-validate-metrics.js");
52
- const quality_risk_assess_js_1 = require("./handlers/quality/quality-risk-assess.js");
53
- const quality_decision_make_js_1 = require("./handlers/quality/quality-decision-make.js");
54
- const quality_policy_check_js_1 = require("./handlers/quality/quality-policy-check.js");
55
- const flaky_test_detect_js_1 = require("./handlers/prediction/flaky-test-detect.js");
56
52
  const predict_defects_ai_js_1 = require("./handlers/prediction/predict-defects-ai.js");
57
- const regression_risk_analyze_js_1 = require("./handlers/prediction/regression-risk-analyze.js");
53
+ // REMOVED: RegressionRiskAnalyzeHandler - use QE_REGRESSION_ANALYZE_RISK instead (Issue #115)
58
54
  const visual_test_regression_js_1 = require("./handlers/prediction/visual-test-regression.js");
59
55
  const deployment_readiness_check_js_1 = require("./handlers/prediction/deployment-readiness-check.js");
60
56
  const coverage_analyze_sublinear_handler_js_1 = require("./handlers/analysis/coverage-analyze-sublinear-handler.js");
61
57
  const coverage_gaps_detect_handler_js_1 = require("./handlers/analysis/coverage-gaps-detect-handler.js");
62
- const performance_benchmark_run_handler_js_1 = require("./handlers/analysis/performance-benchmark-run-handler.js");
58
+ // REMOVED: PerformanceBenchmarkRunHandler - use PERFORMANCE_RUN_BENCHMARK instead (Issue #115)
63
59
  const performance_monitor_realtime_handler_js_1 = require("./handlers/analysis/performance-monitor-realtime-handler.js");
64
- const security_scan_comprehensive_handler_js_1 = require("./handlers/analysis/security-scan-comprehensive-handler.js");
65
60
  const AgentRegistry_js_1 = require("./services/AgentRegistry.js");
66
61
  const HookExecutor_js_1 = require("./services/HookExecutor.js");
67
62
  const MemoryManagerFactory_js_1 = require("../core/memory/MemoryManagerFactory.js");
@@ -134,14 +129,13 @@ class AgenticQEMCPServer {
134
129
  this.handlers.set(tools_js_1.TOOL_NAMES.AGENT_SPAWN, new agent_spawn_js_1.AgentSpawnHandler(this.registry, this.hookExecutor));
135
130
  this.handlers.set(tools_js_1.TOOL_NAMES.FLEET_STATUS, new fleet_status_js_1.FleetStatusHandler(this.registry, this.hookExecutor));
136
131
  // Test lifecycle handlers
137
- this.handlers.set(tools_js_1.TOOL_NAMES.TEST_GENERATE, new test_generate_js_1.TestGenerateHandler(this.registry, this.hookExecutor));
132
+ // REMOVED: TEST_GENERATE - use TEST_GENERATE_ENHANCED instead (Issue #115 Phase 1)
138
133
  this.handlers.set(tools_js_1.TOOL_NAMES.TEST_EXECUTE, new test_execute_js_1.TestExecuteHandler(this.registry, this.hookExecutor));
139
- // Quality and analysis handlers
140
- this.handlers.set(tools_js_1.TOOL_NAMES.QUALITY_ANALYZE, new quality_analyze_js_1.QualityAnalyzeHandler(this.registry, this.hookExecutor));
141
- this.handlers.set(tools_js_1.TOOL_NAMES.PREDICT_DEFECTS, new predict_defects_js_1.PredictDefectsHandler(this.registry, this.hookExecutor));
142
- // Orchestration and optimization handlers
134
+ // Orchestration handlers
143
135
  this.handlers.set(tools_js_1.TOOL_NAMES.TASK_ORCHESTRATE, new task_orchestrate_js_1.TaskOrchestrateHandler(this.registry, this.hookExecutor, this.memory));
144
- this.handlers.set(tools_js_1.TOOL_NAMES.OPTIMIZE_TESTS, new optimize_tests_js_1.OptimizeTestsHandler(this.registry, this.hookExecutor));
136
+ // REMOVED: OPTIMIZE_TESTS - use TEST_OPTIMIZE_SUBLINEAR instead (Issue #115 Phase 1)
137
+ // REMOVED: QUALITY_ANALYZE - use QE_QUALITYGATE_EVALUATE instead (Issue #115 Phase 1)
138
+ // REMOVED: PREDICT_DEFECTS - use PREDICT_DEFECTS_AI instead (Issue #115 Phase 1)
145
139
  // Enhanced test tool handlers
146
140
  this.handlers.set(tools_js_1.TOOL_NAMES.TEST_GENERATE_ENHANCED, new test_generate_enhanced_js_1.TestGenerateEnhancedHandler());
147
141
  this.handlers.set(tools_js_1.TOOL_NAMES.TEST_EXECUTE_PARALLEL, new test_execute_parallel_js_1.TestExecuteParallelHandler());
@@ -171,24 +165,20 @@ class AgenticQEMCPServer {
171
165
  this.handlers.set(tools_js_1.TOOL_NAMES.TASK_STATUS, new task_status_js_1.TaskStatusHandler(this.memory));
172
166
  this.handlers.set(tools_js_1.TOOL_NAMES.EVENT_EMIT, new event_emit_js_1.EventEmitHandler(this.memory));
173
167
  this.handlers.set(tools_js_1.TOOL_NAMES.EVENT_SUBSCRIBE, new event_subscribe_js_1.EventSubscribeHandler(this.memory));
174
- // Quality gate handlers
175
- this.handlers.set(tools_js_1.TOOL_NAMES.QUALITY_GATE_EXECUTE, new quality_gate_execute_js_1.QualityGateExecuteHandler(this.registry, this.hookExecutor));
176
- this.handlers.set(tools_js_1.TOOL_NAMES.QUALITY_VALIDATE_METRICS, new quality_validate_metrics_js_1.QualityValidateMetricsHandler(this.hookExecutor));
177
- this.handlers.set(tools_js_1.TOOL_NAMES.QUALITY_RISK_ASSESS, new quality_risk_assess_js_1.QualityRiskAssessHandler(this.hookExecutor));
178
- this.handlers.set(tools_js_1.TOOL_NAMES.QUALITY_DECISION_MAKE, new quality_decision_make_js_1.QualityDecisionMakeHandler(this.hookExecutor));
179
- this.handlers.set(tools_js_1.TOOL_NAMES.QUALITY_POLICY_CHECK, new quality_policy_check_js_1.QualityPolicyCheckHandler(this.hookExecutor));
168
+ // Quality gate handlers - REMOVED (Issue #115 Phase 1)
169
+ // Use QE_QUALITYGATE_* handlers instead (qe_qualitygate_evaluate, qe_qualitygate_validate_metrics, etc.)
180
170
  // Prediction and analysis handlers
181
- this.handlers.set(tools_js_1.TOOL_NAMES.FLAKY_TEST_DETECT, new flaky_test_detect_js_1.FlakyTestDetectHandler(this.registry, this.hookExecutor));
171
+ // this.handlers.set(TOOL_NAMES.FLAKY_TEST_DETECT, new FlakyTestDetectHandler(this.registry, this.hookExecutor)); // DEPRECATED - absorbed into FLAKY_DETECT_STATISTICAL
182
172
  this.handlers.set(tools_js_1.TOOL_NAMES.PREDICT_DEFECTS_AI, new predict_defects_ai_js_1.PredictDefectsAIHandler(this.registry, this.hookExecutor));
183
- this.handlers.set(tools_js_1.TOOL_NAMES.REGRESSION_RISK_ANALYZE, new regression_risk_analyze_js_1.RegressionRiskAnalyzeHandler(this.registry, this.hookExecutor));
173
+ // this.handlers.set(TOOL_NAMES.REGRESSION_RISK_ANALYZE, new RegressionRiskAnalyzeHandler(this.registry, this.hookExecutor)); // REMOVED - use QE_REGRESSION_ANALYZE_RISK instead (Issue #115)
184
174
  this.handlers.set(tools_js_1.TOOL_NAMES.VISUAL_TEST_REGRESSION, new visual_test_regression_js_1.VisualTestRegressionHandler(this.registry, this.hookExecutor));
185
175
  this.handlers.set(tools_js_1.TOOL_NAMES.DEPLOYMENT_READINESS_CHECK, new deployment_readiness_check_js_1.DeploymentReadinessCheckHandler(this.registry, this.hookExecutor));
186
176
  // Analysis handlers
187
177
  this.handlers.set(tools_js_1.TOOL_NAMES.COVERAGE_ANALYZE_SUBLINEAR, new coverage_analyze_sublinear_handler_js_1.CoverageAnalyzeSublinearHandler());
188
178
  this.handlers.set(tools_js_1.TOOL_NAMES.COVERAGE_GAPS_DETECT, new coverage_gaps_detect_handler_js_1.CoverageGapsDetectHandler());
189
- this.handlers.set(tools_js_1.TOOL_NAMES.PERFORMANCE_BENCHMARK_RUN, new performance_benchmark_run_handler_js_1.PerformanceBenchmarkRunHandler());
179
+ // this.handlers.set(TOOL_NAMES.PERFORMANCE_BENCHMARK_RUN, new PerformanceBenchmarkRunHandler()); // DEPRECATED - absorbed into PERFORMANCE_RUN_BENCHMARK
190
180
  this.handlers.set(tools_js_1.TOOL_NAMES.PERFORMANCE_MONITOR_REALTIME, new performance_monitor_realtime_handler_js_1.PerformanceMonitorRealtimeHandler());
191
- this.handlers.set(tools_js_1.TOOL_NAMES.SECURITY_SCAN_COMPREHENSIVE, new security_scan_comprehensive_handler_js_1.SecurityScanComprehensiveHandler());
181
+ // this.handlers.set(TOOL_NAMES.SECURITY_SCAN_COMPREHENSIVE, new SecurityScanComprehensiveHandler()); // DEPRECATED - use QE_SECURITY_SCAN_COMPREHENSIVE
192
182
  // Streaming handlers (v1.0.5) - Note: These require special handling for AsyncGenerator
193
183
  // They use the same memoryStore and eventBus as other handlers
194
184
  // Create a shared EventEmitter for streaming if memory doesn't have one
@@ -234,10 +224,10 @@ class AgenticQEMCPServer {
234
224
  this.handlers.set(tools_js_1.TOOL_NAMES.PERFORMANCE_ANALYZE_BOTTLENECKS, phase3Handler);
235
225
  this.handlers.set(tools_js_1.TOOL_NAMES.PERFORMANCE_GENERATE_REPORT, phase3Handler);
236
226
  this.handlers.set(tools_js_1.TOOL_NAMES.PERFORMANCE_RUN_BENCHMARK, phase3Handler);
237
- // Security Tools
238
- this.handlers.set(tools_js_1.TOOL_NAMES.SECURITY_VALIDATE_AUTH, phase3Handler);
239
- this.handlers.set(tools_js_1.TOOL_NAMES.SECURITY_CHECK_AUTHZ, phase3Handler);
240
- this.handlers.set(tools_js_1.TOOL_NAMES.SECURITY_SCAN_DEPENDENCIES, phase3Handler);
227
+ // Security Tools (legacy tools deprecated - use qe_security_* instead)
228
+ // this.handlers.set(TOOL_NAMES.SECURITY_VALIDATE_AUTH, phase3Handler); // DEPRECATED
229
+ // this.handlers.set(TOOL_NAMES.SECURITY_CHECK_AUTHZ, phase3Handler); // DEPRECATED
230
+ // this.handlers.set(TOOL_NAMES.SECURITY_SCAN_DEPENDENCIES, phase3Handler); // DEPRECATED
241
231
  this.handlers.set(tools_js_1.TOOL_NAMES.SECURITY_GENERATE_REPORT, phase3Handler);
242
232
  // Visual Testing Tools
243
233
  this.handlers.set(tools_js_1.TOOL_NAMES.VISUAL_COMPARE_SCREENSHOTS, phase3Handler);
@@ -298,16 +288,215 @@ class AgenticQEMCPServer {
298
288
  */
299
289
  setupRequestHandlers() {
300
290
  // Handle tool listing requests
291
+ // Issue #115 Phase 2: Use lazy loader to return only core tools initially
292
+ // This reduces token count by ~80% (14 core tools vs 87 total)
293
+ // Domain-specific tools are loaded on-demand via tools_load_domain
301
294
  this.server.setRequestHandler(types_js_1.ListToolsRequestSchema, async () => {
295
+ const loader = (0, lazy_loader_js_1.getToolLoader)();
296
+ const coreTools = loader.getCoreTools();
297
+ const stats = loader.getStats();
298
+ // Log stats for debugging (can be removed in production)
299
+ console.error(`[Lazy Loader] Returning ${coreTools.length} core tools (${stats.totalAvailable} available)`);
302
300
  return {
303
- tools: tools_js_1.agenticQETools
301
+ tools: coreTools
304
302
  };
305
303
  });
306
304
  // Handle tool call requests
307
305
  this.server.setRequestHandler(types_js_1.CallToolRequestSchema, async (request) => {
308
306
  const { name, arguments: args } = request.params;
309
307
  try {
310
- // Validate tool exists
308
+ // Meta-tools for hierarchical tool loading (Phase 2 Optimization - Issue #115)
309
+ // These are handled inline before regular handler validation
310
+ if (name === tools_js_1.TOOL_NAMES.TOOLS_DISCOVER) {
311
+ const safeArgs = (args || {});
312
+ const categoryInput = safeArgs.category || 'all';
313
+ const includeDescriptions = safeArgs.includeDescriptions || false;
314
+ const toolLoader = (0, lazy_loader_js_1.getToolLoader)();
315
+ const stats = toolLoader.getStats();
316
+ // Support multiple categories (comma-separated)
317
+ const requestedCategories = categoryInput.split(',').map(c => c.trim().toLowerCase());
318
+ const shouldIncludeCategory = (cat) => requestedCategories.includes('all') || requestedCategories.includes(cat);
319
+ // Calculate statistics
320
+ const totalAvailable = tool_categories_js_1.TOOL_STATS.total;
321
+ const totalLoaded = stats.totalLoaded;
322
+ const loadingPercentage = totalAvailable > 0
323
+ ? Math.round((totalLoaded / totalAvailable) * 100)
324
+ : 0;
325
+ const result = {
326
+ success: true,
327
+ timestamp: new Date().toISOString(),
328
+ // Overall statistics
329
+ statistics: {
330
+ totalAvailable,
331
+ totalLoaded,
332
+ loadingPercentage: `${loadingPercentage}%`,
333
+ breakdown: {
334
+ core: {
335
+ available: tool_categories_js_1.TOOL_STATS.core,
336
+ loaded: tool_categories_js_1.TOOL_STATS.core,
337
+ status: 'always loaded'
338
+ },
339
+ domains: {
340
+ available: tool_categories_js_1.TOOL_STATS.domains,
341
+ loaded: stats.loadedDomains.filter(d => Object.keys(tool_categories_js_1.DOMAIN_TOOLS).includes(d)).reduce((sum, d) => sum + tool_categories_js_1.DOMAIN_TOOLS[d].length, 0),
342
+ loadedDomains: stats.loadedDomains.filter(d => Object.keys(tool_categories_js_1.DOMAIN_TOOLS).includes(d)),
343
+ availableDomains: Object.keys(tool_categories_js_1.DOMAIN_TOOLS)
344
+ },
345
+ specialized: {
346
+ available: tool_categories_js_1.TOOL_STATS.specialized,
347
+ loaded: stats.loadedDomains.filter(d => Object.keys(tool_categories_js_1.SPECIALIZED_TOOLS).includes(d)).reduce((sum, d) => sum + tool_categories_js_1.SPECIALIZED_TOOLS[d].length, 0),
348
+ loadedDomains: stats.loadedDomains.filter(d => Object.keys(tool_categories_js_1.SPECIALIZED_TOOLS).includes(d)),
349
+ availableDomains: Object.keys(tool_categories_js_1.SPECIALIZED_TOOLS)
350
+ },
351
+ coordination: {
352
+ available: tool_categories_js_1.TOOL_STATS.coordination,
353
+ loaded: stats.loadedDomains.includes('coordination') ? tool_categories_js_1.TOOL_STATS.coordination : 0,
354
+ status: stats.loadedDomains.includes('coordination') ? 'loaded' : 'available'
355
+ }
356
+ }
357
+ },
358
+ // Category-specific details
359
+ categories: {}
360
+ };
361
+ // Core tools
362
+ if (shouldIncludeCategory('core')) {
363
+ result.categories.core = {
364
+ description: 'Always-loaded essential QE tools',
365
+ count: tool_categories_js_1.TOOL_STATS.core,
366
+ status: 'loaded',
367
+ tools: includeDescriptions
368
+ ? tool_categories_js_1.CORE_TOOLS.map(t => ({ name: t, loaded: true, category: 'core' }))
369
+ : tool_categories_js_1.CORE_TOOLS.slice()
370
+ };
371
+ }
372
+ // Domain tools
373
+ if (shouldIncludeCategory('domains')) {
374
+ const domainDetails = Object.entries(tool_categories_js_1.DOMAIN_TOOLS).map(([domain, tools]) => ({
375
+ domain,
376
+ count: tools.length,
377
+ loaded: stats.loadedDomains.includes(domain),
378
+ keywords: tool_categories_js_1.DOMAIN_KEYWORDS[domain],
379
+ tools: includeDescriptions ? tools.map(t => ({
380
+ name: t,
381
+ loaded: stats.loadedDomains.includes(domain),
382
+ category: 'domain',
383
+ domain
384
+ })) : tools.slice()
385
+ }));
386
+ result.categories.domains = {
387
+ description: 'Domain-specific tools loaded on demand via keyword detection',
388
+ totalCount: tool_categories_js_1.TOOL_STATS.domains,
389
+ loadedCount: domainDetails.filter(d => d.loaded).reduce((sum, d) => sum + d.count, 0),
390
+ availableDomains: domainDetails
391
+ };
392
+ }
393
+ // Specialized tools
394
+ if (shouldIncludeCategory('specialized')) {
395
+ const specializedDetails = Object.entries(tool_categories_js_1.SPECIALIZED_TOOLS).map(([domain, tools]) => ({
396
+ domain,
397
+ count: tools.length,
398
+ loaded: stats.loadedDomains.includes(domain),
399
+ loadMethod: 'explicit request via tools_load_domain',
400
+ tools: includeDescriptions ? tools.map(t => ({
401
+ name: t,
402
+ loaded: stats.loadedDomains.includes(domain),
403
+ category: 'specialized',
404
+ domain
405
+ })) : tools.slice()
406
+ }));
407
+ result.categories.specialized = {
408
+ description: 'Advanced tools for expert use, loaded explicitly',
409
+ totalCount: tool_categories_js_1.TOOL_STATS.specialized,
410
+ loadedCount: specializedDetails.filter(d => d.loaded).reduce((sum, d) => sum + d.count, 0),
411
+ availableDomains: specializedDetails
412
+ };
413
+ }
414
+ // Coordination tools
415
+ if (shouldIncludeCategory('coordination')) {
416
+ result.categories.coordination = {
417
+ description: 'Workflow and inter-agent coordination tools',
418
+ count: tool_categories_js_1.TOOL_STATS.coordination,
419
+ loaded: stats.loadedDomains.includes('coordination'),
420
+ tools: includeDescriptions
421
+ ? tool_categories_js_1.COORDINATION_TOOLS.map(t => ({
422
+ name: t,
423
+ loaded: stats.loadedDomains.includes('coordination'),
424
+ category: 'coordination'
425
+ }))
426
+ : tool_categories_js_1.COORDINATION_TOOLS.slice()
427
+ };
428
+ }
429
+ // Add usage hints if all categories requested
430
+ if (requestedCategories.includes('all')) {
431
+ result.usage = {
432
+ tips: [
433
+ 'Filter by category: use category="core,domains" for multiple categories',
434
+ 'Load domain tools: use tools_load_domain with domain name',
435
+ 'Auto-loading: Domain tools load automatically when keywords are detected',
436
+ 'Include descriptions: set includeDescriptions=true for detailed tool info'
437
+ ],
438
+ availableCategories: ['core', 'domains', 'specialized', 'coordination', 'all'],
439
+ loadableDomains: [
440
+ ...Object.keys(tool_categories_js_1.DOMAIN_TOOLS),
441
+ ...Object.keys(tool_categories_js_1.SPECIALIZED_TOOLS),
442
+ 'coordination'
443
+ ]
444
+ };
445
+ }
446
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
447
+ }
448
+ if (name === tools_js_1.TOOL_NAMES.TOOLS_LOAD_DOMAIN) {
449
+ const safeArgs = (args || {});
450
+ const domain = safeArgs.domain;
451
+ const preload = safeArgs.preload || false;
452
+ if (!domain) {
453
+ throw new types_js_1.McpError(types_js_1.ErrorCode.InvalidParams, 'domain parameter is required');
454
+ }
455
+ const toolLoader = (0, lazy_loader_js_1.getToolLoader)();
456
+ const loadResult = toolLoader.loadDomain(domain);
457
+ const stats = toolLoader.getStats();
458
+ const result = {
459
+ success: loadResult.success,
460
+ timestamp: new Date().toISOString(),
461
+ domain,
462
+ toolsLoaded: loadResult.toolsLoaded.length,
463
+ tools: loadResult.toolsLoaded,
464
+ alreadyLoaded: loadResult.alreadyLoaded,
465
+ totalLoadedDomains: stats.loadedDomains,
466
+ message: loadResult.alreadyLoaded
467
+ ? `Domain '${domain}' was already loaded`
468
+ : loadResult.toolsLoaded.length > 0
469
+ ? `Successfully loaded ${loadResult.toolsLoaded.length} tools from ${domain} domain`
470
+ : `Domain '${domain}' not found`
471
+ };
472
+ // Optionally preload related domains
473
+ if (preload && loadResult.toolsLoaded.length > 0) {
474
+ const relatedDomains = {
475
+ security: ['coverage', 'quality'],
476
+ performance: ['coverage', 'quality'],
477
+ coverage: ['quality'],
478
+ quality: ['coverage'],
479
+ flaky: ['coverage', 'performance'],
480
+ visual: ['requirements'],
481
+ requirements: ['visual']
482
+ };
483
+ const related = relatedDomains[domain] || [];
484
+ const preloadedTools = [];
485
+ for (const relatedDomain of related) {
486
+ const relatedResult = toolLoader.loadDomain(relatedDomain);
487
+ preloadedTools.push(...relatedResult.toolsLoaded);
488
+ }
489
+ const updatedStats = toolLoader.getStats();
490
+ if (preloadedTools.length > 0) {
491
+ result.preloaded = {
492
+ domains: related.filter(d => updatedStats.loadedDomains.includes(d)),
493
+ tools: preloadedTools
494
+ };
495
+ }
496
+ }
497
+ return { content: [{ type: 'text', text: JSON.stringify(result, null, 2) }] };
498
+ }
499
+ // Validate tool exists (for non-meta-tools)
311
500
  if (!this.handlers.has(name)) {
312
501
  throw new types_js_1.McpError(types_js_1.ErrorCode.MethodNotFound, `Unknown tool: ${name}`);
313
502
  }
@@ -442,25 +631,23 @@ class AgenticQEMCPServer {
442
631
  else if (name === tools_js_1.TOOL_NAMES.PERFORMANCE_RUN_BENCHMARK) {
443
632
  result = await phase3Handler.handlePerformanceRunBenchmark(safeArgs);
444
633
  }
445
- else if (name === tools_js_1.TOOL_NAMES.PERFORMANCE_MONITOR_REALTIME_PHASE3) {
634
+ else if (name === tools_js_1.TOOL_NAMES.PERFORMANCE_MONITOR_REALTIME) {
446
635
  result = await phase3Handler.handlePerformanceMonitorRealtime(safeArgs);
447
636
  }
448
- // Security Tools
449
- else if (name === tools_js_1.TOOL_NAMES.SECURITY_VALIDATE_AUTH) {
450
- result = await phase3Handler.handleSecurityValidateAuth(safeArgs);
451
- }
452
- else if (name === tools_js_1.TOOL_NAMES.SECURITY_CHECK_AUTHZ) {
453
- result = await phase3Handler.handleSecurityCheckAuthz(safeArgs);
454
- }
455
- else if (name === tools_js_1.TOOL_NAMES.SECURITY_SCAN_DEPENDENCIES) {
456
- result = await phase3Handler.handleSecurityScanDependencies(safeArgs);
457
- }
637
+ // Security Tools (legacy tools deprecated - use qe_security_* instead)
638
+ // else if (name === TOOL_NAMES.SECURITY_VALIDATE_AUTH) { // DEPRECATED
639
+ // result = await phase3Handler.handleSecurityValidateAuth(safeArgs);
640
+ // } else if (name === TOOL_NAMES.SECURITY_CHECK_AUTHZ) { // DEPRECATED
641
+ // result = await phase3Handler.handleSecurityCheckAuthz(safeArgs);
642
+ // } else if (name === TOOL_NAMES.SECURITY_SCAN_DEPENDENCIES) { // DEPRECATED
643
+ // result = await phase3Handler.handleSecurityScanDependencies(safeArgs);
644
+ // }
458
645
  else if (name === tools_js_1.TOOL_NAMES.SECURITY_GENERATE_REPORT) {
459
646
  result = await phase3Handler.handleSecurityGenerateReport(safeArgs);
460
647
  }
461
- else if (name === tools_js_1.TOOL_NAMES.SECURITY_SCAN_COMPREHENSIVE_PHASE3) {
462
- result = await phase3Handler.handleSecurityScanComprehensive(safeArgs);
463
- }
648
+ // else if (name === TOOL_NAMES.SECURITY_SCAN_COMPREHENSIVE) { // DEPRECATED - use QE_SECURITY_SCAN_COMPREHENSIVE
649
+ // result = await phase3Handler.handleSecurityScanComprehensive(safeArgs);
650
+ // }
464
651
  // Visual Testing Tools
465
652
  else if (name === tools_js_1.TOOL_NAMES.VISUAL_COMPARE_SCREENSHOTS) {
466
653
  result = await phase3Handler.handleVisualCompareScreenshots(safeArgs);
@@ -1 +1 @@
1
- {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"server.js","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,105 @@
1
+ /**
2
+ * Tool Categories for Hierarchical Lazy Loading
3
+ * Phase 2 Implementation - Issue #115
4
+ *
5
+ * This file organizes all 96 MCP tools into categories for efficient loading:
6
+ * - Core tools: Always loaded (~14 tools)
7
+ * - Domain tools: Loaded on keyword detection (70 tools across 7 domains)
8
+ * - Specialized tools: Loaded on explicit request (12 tools)
9
+ */
10
+ export type ToolDomain = 'security' | 'performance' | 'coverage' | 'quality' | 'flaky' | 'visual' | 'requirements';
11
+ export type SpecializedDomain = 'learning' | 'advanced';
12
+ export type ToolCategory = 'core' | 'domain' | 'specialized';
13
+ /**
14
+ * Core tools - always loaded (~14 tools)
15
+ * These are fundamental tools needed for basic fleet operations
16
+ */
17
+ export declare const CORE_TOOLS: readonly ["mcp__agentic_qe__fleet_init", "mcp__agentic_qe__agent_spawn", "mcp__agentic_qe__fleet_status", "mcp__agentic_qe__test_generate_enhanced", "mcp__agentic_qe__test_execute", "mcp__agentic_qe__test_execute_parallel", "mcp__agentic_qe__test_report_comprehensive", "mcp__agentic_qe__memory_store", "mcp__agentic_qe__memory_retrieve", "mcp__agentic_qe__memory_query", "mcp__agentic_qe__task_orchestrate", "mcp__agentic_qe__task_status", "mcp__agentic_qe__tools_discover", "mcp__agentic_qe__tools_load_domain"];
18
+ /**
19
+ * Domain tools - load on keyword detection
20
+ * Organized by testing domain with specific focus areas
21
+ */
22
+ export declare const DOMAIN_TOOLS: Record<ToolDomain, readonly string[]>;
23
+ /**
24
+ * Specialized tools - load on explicit request
25
+ * These are advanced tools for specific scenarios
26
+ */
27
+ export declare const SPECIALIZED_TOOLS: Record<SpecializedDomain, readonly string[]>;
28
+ /**
29
+ * Keywords for auto-loading domains
30
+ * Used to detect which domain tools to load based on user message content
31
+ *
32
+ * Enhanced in Phase 3 Track I with:
33
+ * - More comprehensive keyword coverage
34
+ * - Common misspellings and abbreviations
35
+ * - Related testing terminology
36
+ * - Industry-standard terms
37
+ */
38
+ export declare const DOMAIN_KEYWORDS: Record<ToolDomain, readonly string[]>;
39
+ /**
40
+ * Additional coordination and workflow tools
41
+ * These don't fit neatly into domains but are important
42
+ */
43
+ export declare const COORDINATION_TOOLS: readonly ["mcp__agentic_qe__workflow_create", "mcp__agentic_qe__workflow_execute", "mcp__agentic_qe__workflow_checkpoint", "mcp__agentic_qe__workflow_resume", "mcp__agentic_qe__memory_share", "mcp__agentic_qe__memory_backup", "mcp__agentic_qe__blackboard_post", "mcp__agentic_qe__blackboard_read", "mcp__agentic_qe__consensus_propose", "mcp__agentic_qe__consensus_vote", "mcp__agentic_qe__artifact_manifest"];
44
+ /**
45
+ * Legacy tools that have been deprecated but may still exist
46
+ * These should not be loaded in normal operations
47
+ */
48
+ export declare const DEPRECATED_TOOLS: readonly ["mcp__agentic_qe__test_generate", "mcp__agentic_qe__test_execute", "mcp__agentic_qe__predict_defects", "mcp__agentic_qe__optimize_tests"];
49
+ /**
50
+ * Get the category of a tool (core, domain, or specialized)
51
+ */
52
+ export declare function getToolCategory(toolName: string): ToolCategory;
53
+ /**
54
+ * Get the specific domain of a tool
55
+ */
56
+ export declare function getToolDomain(toolName: string): ToolDomain | SpecializedDomain | 'coordination' | null;
57
+ /**
58
+ * Related domains that should be loaded together
59
+ * When one domain is detected, related domains may also be useful
60
+ */
61
+ export declare const DOMAIN_RELATIONSHIPS: Record<ToolDomain, ToolDomain[]>;
62
+ /**
63
+ * Detect which domains should be loaded based on message content
64
+ * Enhanced with:
65
+ * - Better keyword matching (word boundaries)
66
+ * - Related domain detection
67
+ * - Duplicate prevention
68
+ */
69
+ export declare function detectDomainsFromMessage(message: string, options?: {
70
+ includeRelated?: boolean;
71
+ minKeywordLength?: number;
72
+ }): ToolDomain[];
73
+ /**
74
+ * Get all tools for a specific domain
75
+ */
76
+ export declare function getAllToolsForDomain(domain: ToolDomain | SpecializedDomain | 'coordination'): readonly string[];
77
+ /**
78
+ * Get all tools that should be loaded for a given message
79
+ */
80
+ export declare function getToolsForMessage(message: string): {
81
+ core: readonly string[];
82
+ domains: Record<ToolDomain, readonly string[]>;
83
+ total: number;
84
+ };
85
+ /**
86
+ * Check if a tool is deprecated
87
+ */
88
+ export declare function isToolDeprecated(toolName: string): boolean;
89
+ /**
90
+ * Statistics about tool distribution
91
+ */
92
+ export declare const TOOL_STATS: {
93
+ readonly core: 14;
94
+ readonly domains: number;
95
+ readonly specialized: number;
96
+ readonly coordination: 11;
97
+ readonly deprecated: 4;
98
+ readonly total: number;
99
+ readonly activeTotal: number;
100
+ };
101
+ /**
102
+ * Get a summary of the tool categorization
103
+ */
104
+ export declare function getToolCategorySummary(): string;
105
+ //# sourceMappingURL=tool-categories.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tool-categories.d.ts","sourceRoot":"","sources":["../../src/mcp/tool-categories.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAGH,MAAM,MAAM,UAAU,GAAG,UAAU,GAAG,aAAa,GAAG,UAAU,GAAG,SAAS,GAAG,OAAO,GAAG,QAAQ,GAAG,cAAc,CAAC;AACnH,MAAM,MAAM,iBAAiB,GAAG,UAAU,GAAG,UAAU,CAAC;AACxD,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,QAAQ,GAAG,aAAa,CAAC;AAE7D;;;GAGG;AACH,eAAO,MAAM,UAAU,mgBAeb,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,YAAY,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAuD9D,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,iBAAiB,EAAE,MAAM,CAAC,iBAAiB,EAAE,SAAS,MAAM,EAAE,CA6C1E,CAAC;AAEF;;;;;;;;;GASG;AACH,eAAO,MAAM,eAAe,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAsHjE,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,kBAAkB,0ZAYrB,CAAC;AAEX;;;GAGG;AACH,eAAO,MAAM,gBAAgB,qJAKnB,CAAC;AAIX;;GAEG;AACH,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,YAAY,CAc9D;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,UAAU,GAAG,iBAAiB,GAAG,cAAc,GAAG,IAAI,CAYtG;AAED;;;GAGG;AACH,eAAO,MAAM,oBAAoB,EAAE,MAAM,CAAC,UAAU,EAAE,UAAU,EAAE,CAQjE,CAAC;AAEF;;;;;;GAMG;AACH,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,MAAM,EAAE,OAAO,GAAE;IACjE,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,gBAAgB,CAAC,EAAE,MAAM,CAAC;CACtB,GAAG,UAAU,EAAE,CA+BpB;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,MAAM,EAAE,UAAU,GAAG,iBAAiB,GAAG,cAAc,GAAG,SAAS,MAAM,EAAE,CAc/G;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,MAAM,GAAG;IACnD,IAAI,EAAE,SAAS,MAAM,EAAE,CAAC;IACxB,OAAO,EAAE,MAAM,CAAC,UAAU,EAAE,SAAS,MAAM,EAAE,CAAC,CAAC;IAC/C,KAAK,EAAE,MAAM,CAAC;CACf,CAgBA;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAE1D;AAED;;GAEG;AACH,eAAO,MAAM,UAAU;;;;;;;;CAYb,CAAC;AAEX;;GAEG;AACH,wBAAgB,sBAAsB,IAAI,MAAM,CAgB/C"}