agentic-qe 1.3.5 → 1.3.7

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 (104) hide show
  1. package/.claude/agents/qe-code-complexity.md +291 -0
  2. package/.claude/settings.json +2 -2
  3. package/CHANGELOG.md +67 -0
  4. package/README.md +36 -6
  5. package/dist/agents/BaseAgent.d.ts +6 -2
  6. package/dist/agents/BaseAgent.d.ts.map +1 -1
  7. package/dist/agents/BaseAgent.js +62 -51
  8. package/dist/agents/BaseAgent.js.map +1 -1
  9. package/dist/agents/CodeComplexityAnalyzerAgent.d.ts +139 -0
  10. package/dist/agents/CodeComplexityAnalyzerAgent.d.ts.map +1 -0
  11. package/dist/agents/CodeComplexityAnalyzerAgent.js +403 -0
  12. package/dist/agents/CodeComplexityAnalyzerAgent.js.map +1 -0
  13. package/dist/agents/FleetCommanderAgent.js +2 -2
  14. package/dist/agents/FleetCommanderAgent.js.map +1 -1
  15. package/dist/agents/QualityGateAgent.d.ts +5 -5
  16. package/dist/agents/QualityGateAgent.d.ts.map +1 -1
  17. package/dist/agents/QualityGateAgent.js +33 -19
  18. package/dist/agents/QualityGateAgent.js.map +1 -1
  19. package/dist/agents/TestDataArchitectAgent.d.ts +9 -0
  20. package/dist/agents/TestDataArchitectAgent.d.ts.map +1 -1
  21. package/dist/agents/TestDataArchitectAgent.js +96 -2
  22. package/dist/agents/TestDataArchitectAgent.js.map +1 -1
  23. package/dist/agents/TestGeneratorAgent.d.ts +23 -1
  24. package/dist/agents/TestGeneratorAgent.d.ts.map +1 -1
  25. package/dist/agents/TestGeneratorAgent.js +279 -54
  26. package/dist/agents/TestGeneratorAgent.js.map +1 -1
  27. package/dist/agents/coordination/AgentCoordinator.d.ts +98 -0
  28. package/dist/agents/coordination/AgentCoordinator.d.ts.map +1 -0
  29. package/dist/agents/coordination/AgentCoordinator.js +196 -0
  30. package/dist/agents/coordination/AgentCoordinator.js.map +1 -0
  31. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts +107 -0
  32. package/dist/agents/lifecycle/AgentLifecycleManager.d.ts.map +1 -0
  33. package/dist/agents/lifecycle/AgentLifecycleManager.js +220 -0
  34. package/dist/agents/lifecycle/AgentLifecycleManager.js.map +1 -0
  35. package/dist/agents/memory/AgentMemoryService.d.ts +173 -0
  36. package/dist/agents/memory/AgentMemoryService.d.ts.map +1 -0
  37. package/dist/agents/memory/AgentMemoryService.js +297 -0
  38. package/dist/agents/memory/AgentMemoryService.js.map +1 -0
  39. package/dist/cli/commands/init.d.ts.map +1 -1
  40. package/dist/cli/commands/init.js +45 -3
  41. package/dist/cli/commands/init.js.map +1 -1
  42. package/dist/cli/commands/skills/index.d.ts +4 -0
  43. package/dist/cli/commands/skills/index.d.ts.map +1 -1
  44. package/dist/cli/commands/skills/index.js +8 -2
  45. package/dist/cli/commands/skills/index.js.map +1 -1
  46. package/dist/core/memory/SwarmMemoryManager.d.ts +2 -1
  47. package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
  48. package/dist/core/memory/SwarmMemoryManager.js +4 -1
  49. package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
  50. package/dist/core/memory/dao/AccessControlDAO.d.ts +66 -0
  51. package/dist/core/memory/dao/AccessControlDAO.d.ts.map +1 -0
  52. package/dist/core/memory/dao/AccessControlDAO.js +140 -0
  53. package/dist/core/memory/dao/AccessControlDAO.js.map +1 -0
  54. package/dist/core/memory/dao/BaseDAO.d.ts +34 -0
  55. package/dist/core/memory/dao/BaseDAO.d.ts.map +1 -0
  56. package/dist/core/memory/dao/BaseDAO.js +34 -0
  57. package/dist/core/memory/dao/BaseDAO.js.map +1 -0
  58. package/dist/core/memory/dao/BlackboardDAO.d.ts +90 -0
  59. package/dist/core/memory/dao/BlackboardDAO.d.ts.map +1 -0
  60. package/dist/core/memory/dao/BlackboardDAO.js +223 -0
  61. package/dist/core/memory/dao/BlackboardDAO.js.map +1 -0
  62. package/dist/core/memory/dao/EventDAO.d.ts +83 -0
  63. package/dist/core/memory/dao/EventDAO.d.ts.map +1 -0
  64. package/dist/core/memory/dao/EventDAO.js +177 -0
  65. package/dist/core/memory/dao/EventDAO.js.map +1 -0
  66. package/dist/core/memory/dao/MemoryEntryDAO.d.ts +57 -0
  67. package/dist/core/memory/dao/MemoryEntryDAO.d.ts.map +1 -0
  68. package/dist/core/memory/dao/MemoryEntryDAO.js +159 -0
  69. package/dist/core/memory/dao/MemoryEntryDAO.js.map +1 -0
  70. package/dist/core/memory/dao/WorkflowDAO.d.ts +85 -0
  71. package/dist/core/memory/dao/WorkflowDAO.d.ts.map +1 -0
  72. package/dist/core/memory/dao/WorkflowDAO.js +182 -0
  73. package/dist/core/memory/dao/WorkflowDAO.js.map +1 -0
  74. package/dist/core/memory/services/AccessControlService.d.ts +123 -0
  75. package/dist/core/memory/services/AccessControlService.d.ts.map +1 -0
  76. package/dist/core/memory/services/AccessControlService.js +249 -0
  77. package/dist/core/memory/services/AccessControlService.js.map +1 -0
  78. package/dist/core/memory/services/MemoryStoreService.d.ts +69 -0
  79. package/dist/core/memory/services/MemoryStoreService.d.ts.map +1 -0
  80. package/dist/core/memory/services/MemoryStoreService.js +214 -0
  81. package/dist/core/memory/services/MemoryStoreService.js.map +1 -0
  82. package/dist/mcp/handlers/base-handler.d.ts.map +1 -1
  83. package/dist/mcp/handlers/base-handler.js +4 -1
  84. package/dist/mcp/handlers/base-handler.js.map +1 -1
  85. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +11 -1
  86. package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +1 -1
  87. package/dist/mcp/handlers/prediction/regression-risk-analyze.js +63 -8
  88. package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +1 -1
  89. package/dist/mcp/handlers/quality-analyze.d.ts +7 -1
  90. package/dist/mcp/handlers/quality-analyze.d.ts.map +1 -1
  91. package/dist/mcp/handlers/quality-analyze.js +18 -1
  92. package/dist/mcp/handlers/quality-analyze.js.map +1 -1
  93. package/dist/mcp/handlers/test-generate.d.ts.map +1 -1
  94. package/dist/mcp/handlers/test-generate.js +24 -8
  95. package/dist/mcp/handlers/test-generate.js.map +1 -1
  96. package/dist/mcp/services/AgentRegistry.d.ts +5 -0
  97. package/dist/mcp/services/AgentRegistry.d.ts.map +1 -1
  98. package/dist/mcp/services/AgentRegistry.js +19 -0
  99. package/dist/mcp/services/AgentRegistry.js.map +1 -1
  100. package/dist/utils/__mocks__/Database.d.ts +64 -0
  101. package/dist/utils/__mocks__/Database.d.ts.map +1 -0
  102. package/dist/utils/__mocks__/Database.js +134 -0
  103. package/dist/utils/__mocks__/Database.js.map +1 -0
  104. package/package.json +5 -1
@@ -0,0 +1,291 @@
1
+ ---
2
+ name: qe-code-complexity
3
+ version: 1.0.0
4
+ description: Educational code complexity analyzer demonstrating the Agentic QE Fleet architecture
5
+ tags: [quality-engineering, complexity-analysis, refactoring, learning-example]
6
+ capabilities: [complexity-analysis, refactoring-recommendations, pattern-detection]
7
+ type: quality-analyzer
8
+ ---
9
+
10
+ # QE Code Complexity Analyzer
11
+
12
+ ## Overview
13
+
14
+ The Code Complexity Analyzer is an **educational agent** that demonstrates the complete Agentic QE Fleet architecture. It analyzes code complexity metrics and provides AI-powered refactoring recommendations.
15
+
16
+ **Purpose**: Learning tool to understand how agents work in the AQE fleet.
17
+
18
+ ## Capabilities
19
+
20
+ ### 1. Complexity Analysis
21
+ - **Cyclomatic Complexity**: Measures decision point density
22
+ - **Cognitive Complexity**: Accounts for nesting and control flow
23
+ - **File Size Analysis**: Identifies overly large files
24
+ - **Function Metrics**: Tracks function count and average complexity
25
+
26
+ ### 2. Refactoring Recommendations
27
+ - AI-powered suggestions based on detected patterns
28
+ - Severity-based prioritization (low, medium, high, critical)
29
+ - Specific actionable advice (e.g., "Extract Method", "Reduce Nesting")
30
+
31
+ ### 3. Quality Scoring
32
+ - Holistic quality score (0-100)
33
+ - Issue-based deductions
34
+ - Helps prioritize refactoring efforts
35
+
36
+ ## Key Learning Concepts
37
+
38
+ ### BaseAgent Pattern
39
+ ```typescript
40
+ // All agents extend BaseAgent
41
+ export class CodeComplexityAnalyzerAgent extends BaseAgent {
42
+ // Define capabilities in constructor
43
+ constructor(config: CodeComplexityConfig) {
44
+ super({
45
+ ...config,
46
+ type: QEAgentType.QUALITY_ANALYZER,
47
+ capabilities: [/* ... */]
48
+ });
49
+ }
50
+ }
51
+ ```
52
+
53
+ ### Lifecycle Hooks
54
+ ```typescript
55
+ // Pre-task: Load context before work
56
+ protected async onPreTask(data: { assignment: any }): Promise<void> {
57
+ const history = await this.memoryStore.retrieve('aqe/complexity/.../history');
58
+ // Use historical data to improve analysis
59
+ }
60
+
61
+ // Post-task: Store results and coordinate
62
+ protected async onPostTask(data: PostTaskData): Promise<void> {
63
+ await this.memoryStore.store('aqe/complexity/.../results', data.result);
64
+ this.eventBus.emit('complexity:analysis:completed', { ... });
65
+ }
66
+
67
+ // Error handling: Learn from failures
68
+ protected async onTaskError(data: { assignment: any; error: Error }): Promise<void> {
69
+ await this.memoryStore.store('aqe/complexity/.../errors/...', { ... });
70
+ }
71
+ ```
72
+
73
+ ### Memory System
74
+ ```typescript
75
+ // Store results for other agents
76
+ await this.memoryStore.store(
77
+ 'aqe/complexity/${agentId}/latest-result',
78
+ result,
79
+ 86400 // 24 hour TTL
80
+ );
81
+
82
+ // Retrieve for coordination
83
+ const previous = await this.memoryStore.retrieve(
84
+ 'aqe/complexity/${agentId}/history'
85
+ );
86
+ ```
87
+
88
+ ### Event-Driven Architecture
89
+ ```typescript
90
+ // Emit events for coordination
91
+ this.eventBus.emit('complexity:analysis:completed', {
92
+ agentId: this.agentId,
93
+ result: analysisResult,
94
+ timestamp: new Date()
95
+ });
96
+
97
+ // Other agents can subscribe
98
+ eventBus.on('complexity:analysis:completed', (event) => {
99
+ // Test generator could prioritize complex code
100
+ // Coverage analyzer could focus on complex functions
101
+ });
102
+ ```
103
+
104
+ ## Usage Examples
105
+
106
+ ### From Claude Code CLI
107
+
108
+ ```bash
109
+ # Analyze a single file
110
+ claude "Use qe-code-complexity to analyze src/services/order-processor.ts"
111
+
112
+ # Analyze multiple files
113
+ claude "Run complexity analysis on all files in src/services/"
114
+
115
+ # Get refactoring recommendations
116
+ claude "Analyze src/utils/validator.ts and suggest refactorings"
117
+ ```
118
+
119
+ ### Via TypeScript
120
+
121
+ ```typescript
122
+ import { CodeComplexityAnalyzerAgent } from './agents/CodeComplexityAnalyzerAgent';
123
+
124
+ // Initialize agent
125
+ const agent = new CodeComplexityAnalyzerAgent({
126
+ type: QEAgentType.QUALITY_ANALYZER,
127
+ capabilities: [],
128
+ context: { /* ... */ },
129
+ memoryStore,
130
+ eventBus,
131
+ thresholds: {
132
+ cyclomaticComplexity: 10,
133
+ cognitiveComplexity: 15,
134
+ linesOfCode: 300
135
+ },
136
+ enableRecommendations: true
137
+ });
138
+
139
+ await agent.initialize();
140
+
141
+ // Analyze code
142
+ const result = await agent.analyzeComplexity({
143
+ files: [{
144
+ path: 'complex.ts',
145
+ content: sourceCode,
146
+ language: 'typescript'
147
+ }]
148
+ });
149
+
150
+ console.log('Quality Score:', result.score);
151
+ console.log('Issues:', result.issues);
152
+ console.log('Recommendations:', result.recommendations);
153
+ ```
154
+
155
+ ## Configuration
156
+
157
+ ### Thresholds
158
+
159
+ Customize complexity thresholds:
160
+
161
+ ```typescript
162
+ {
163
+ thresholds: {
164
+ cyclomaticComplexity: 10, // Default: 10
165
+ cognitiveComplexity: 15, // Default: 15
166
+ linesOfCode: 300 // Default: 300
167
+ }
168
+ }
169
+ ```
170
+
171
+ ### Features
172
+
173
+ ```typescript
174
+ {
175
+ enableRecommendations: true, // Default: true
176
+ enableLearning: true // Default: false (demo uses false)
177
+ }
178
+ ```
179
+
180
+ ## Integration with Other Agents
181
+
182
+ ### Test Generator
183
+ The test-generator agent can use complexity analysis to:
184
+ - Prioritize complex functions for testing
185
+ - Generate more comprehensive tests for high-complexity code
186
+ - Focus on edge cases in nested logic
187
+
188
+ ```typescript
189
+ eventBus.on('complexity:analysis:completed', async (event) => {
190
+ if (event.result.issues.some(i => i.severity === 'critical')) {
191
+ // Test generator: Create extra tests for critical complexity
192
+ await testGeneratorAgent.generateTests({
193
+ focusAreas: event.result.issues
194
+ .filter(i => i.severity === 'critical')
195
+ .map(i => i.file)
196
+ });
197
+ }
198
+ });
199
+ ```
200
+
201
+ ### Coverage Analyzer
202
+ The coverage-analyzer can use complexity data to:
203
+ - Ensure high-complexity code has high coverage
204
+ - Identify risk areas (high complexity + low coverage)
205
+
206
+ ### Quality Gate
207
+ The quality-gate can use complexity metrics as criteria:
208
+ - Fail builds with critical complexity issues
209
+ - Track complexity trends over time
210
+ - Prevent complexity regressions
211
+
212
+ ## Example Output
213
+
214
+ ```
215
+ Quality Score: 65/100
216
+
217
+ ⚠️ Issues Detected:
218
+ 1. [HIGH] cyclomatic
219
+ Current: 23, Threshold: 10
220
+ Consider breaking down complex logic into smaller functions
221
+
222
+ 2. [MEDIUM] cognitive
223
+ Current: 18, Threshold: 15
224
+ Reduce nesting levels and simplify control flow
225
+
226
+ 💡 Recommendations:
227
+ 1. Apply Extract Method refactoring to reduce cyclomatic complexity
228
+ 2. Use early returns to reduce nesting levels
229
+ 3. Extract nested loops into separate methods
230
+ ```
231
+
232
+ ## Learning Objectives
233
+
234
+ By studying this agent, you'll learn:
235
+
236
+ 1. ✅ **BaseAgent Pattern**: How to extend and customize agents
237
+ 2. ✅ **Lifecycle Hooks**: Pre-task, post-task, and error handling
238
+ 3. ✅ **Memory System**: Storing and retrieving agent data
239
+ 4. ✅ **Event System**: Coordinating multiple agents
240
+ 5. ✅ **Testing Patterns**: Comprehensive test coverage
241
+ 6. ✅ **Agent Coordination**: How agents work together
242
+
243
+ ## Running the Example
244
+
245
+ ```bash
246
+ # Run the demo
247
+ npx ts-node examples/complexity-analysis/demo.ts
248
+
249
+ # Run tests
250
+ npm test tests/agents/CodeComplexityAnalyzerAgent.test.ts
251
+ ```
252
+
253
+ ## Architecture Insights
254
+
255
+ ### Memory Namespace
256
+ - `aqe/complexity/${agentId}/current-request` - Active analysis request
257
+ - `aqe/complexity/${agentId}/latest-result` - Most recent result
258
+ - `aqe/complexity/${agentId}/history` - Historical analyses (last 100)
259
+ - `aqe/complexity/${agentId}/errors/*` - Error tracking
260
+
261
+ ### Events Emitted
262
+ - `complexity:analysis:completed` - When analysis finishes successfully
263
+ - `complexity:analysis:stored` - When results are persisted
264
+
265
+ ### Capabilities Provided
266
+ - `complexity-analysis` - Core analysis functionality
267
+ - `refactoring-recommendations` - AI-powered suggestions
268
+ - `pattern-detection` - Complex code pattern recognition
269
+
270
+ ## Next Steps
271
+
272
+ After understanding this agent, explore:
273
+ - **TestGeneratorAgent**: See how it generates tests
274
+ - **CoverageAnalyzerAgent**: Learn about O(log n) gap detection
275
+ - **FleetManager**: Understand multi-agent coordination
276
+ - **LearningEngine**: Discover how agents improve over time
277
+
278
+ ## Resources
279
+
280
+ - **Source Code**: `src/agents/CodeComplexityAnalyzerAgent.ts`
281
+ - **Tests**: `tests/agents/CodeComplexityAnalyzerAgent.test.ts`
282
+ - **Demo**: `examples/complexity-analysis/demo.ts`
283
+ - **BaseAgent**: `src/agents/BaseAgent.ts`
284
+
285
+ ---
286
+
287
+ **Educational Agent**: This agent is designed for learning. For production complexity analysis, consider:
288
+ - ESLint with complexity rules
289
+ - SonarQube
290
+ - CodeClimate
291
+ - Commercial static analysis tools
@@ -145,9 +145,9 @@
145
145
  ]
146
146
  },
147
147
  "includeCoAuthoredBy": true,
148
- "enabledMcpjsonServers": ["claude-flow", "ruv-swarm"],
148
+ "enabledMcpjsonServers": ["claude-flow", "ruv-swarm", "agentic-qe"],
149
149
  "statusLine": {
150
150
  "type": "command",
151
- "command": ".claude/statusline-agentdb.sh"
151
+ "command": ".claude/statusline-command.sh"
152
152
  }
153
153
  }
package/CHANGELOG.md CHANGED
@@ -5,6 +5,73 @@ All notable changes to the Agentic QE project will be documented in this file.
5
5
  The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
6
6
  and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
7
7
 
8
+ ## [1.3.7] - 2025-10-30
9
+
10
+ ### 📚 Documentation Updates
11
+
12
+ #### README Improvements
13
+ - **Updated agent count**: 17 → 18 specialized agents (added qe-code-complexity)
14
+ - **Added qe-code-complexity agent** to initialization section
15
+ - **Added 34 QE skills library** to "What gets initialized" section
16
+ - **Updated Agent Types table**: Core Testing Agents (5 → 6 agents)
17
+ - **Added usage example** for code complexity analysis in Example 5
18
+
19
+ #### Agent Documentation
20
+ - **qe-code-complexity**: Educational agent demonstrating AQE Fleet architecture
21
+ - Cyclomatic complexity analysis
22
+ - Cognitive complexity metrics
23
+ - AI-powered refactoring recommendations
24
+ - Complete BaseAgent pattern demonstration
25
+
26
+ ### Changed
27
+ - README.md: Version 1.3.6 → 1.3.7
28
+ - Agent count references updated throughout documentation
29
+ - Skills library properly documented in initialization
30
+
31
+ ### Quality
32
+ - **Release Type**: Documentation-only patch release
33
+ - **Breaking Changes**: None
34
+ - **Migration Required**: None (automatic on npm install)
35
+
36
+ ---
37
+
38
+ ## [1.3.6] - 2025-10-30
39
+
40
+ ### 🔒 Security & UX Improvements
41
+
42
+ #### Security Fixes
43
+ - **eval() Removal**: Replaced unsafe `eval()` in TestDataArchitectAgent with safe expression evaluator
44
+ - Supports comparison operators (===, !==, ==, !=, >=, <=, >, <)
45
+ - Supports logical operators (&&, ||)
46
+ - Eliminates arbitrary code execution vulnerability
47
+ - File: `src/agents/TestDataArchitectAgent.ts`
48
+
49
+ #### UX Enhancements
50
+ - **CLAUDE.md Append Strategy**: User-friendly placement of AQE instructions
51
+ - Interactive mode: Prompts user to choose prepend or append
52
+ - `--yes` mode: Defaults to append (less disruptive)
53
+ - Clear visual separator (---) between sections
54
+ - Backup existing CLAUDE.md automatically
55
+ - File: `src/cli/commands/init.ts`
56
+
57
+ - **CLI Skills Count Fix**: Accurate display of installed skills
58
+ - Dynamic counting instead of hardcoded values
59
+ - Now shows correct "34/34" instead of "8/17"
60
+ - Future-proof (auto-updates when skills added)
61
+ - File: `src/cli/commands/skills/index.ts`
62
+
63
+ #### Additional Improvements
64
+ - **CodeComplexityAnalyzerAgent**: Cherry-picked from PR #22 with full integration
65
+ - **TypeScript Compilation**: All errors resolved (0 compilation errors)
66
+ - **Documentation**: Comprehensive fix reports and verification
67
+
68
+ ### Testing
69
+ - ✅ TypeScript compilation: 0 errors
70
+ - ✅ All three fixes verified and working
71
+ - ✅ Backward compatible changes only
72
+
73
+ ---
74
+
8
75
  ## [1.3.5] - 2025-10-27
9
76
 
10
77
  ### ✨ Features Complete - Production Ready Release
package/README.md CHANGED
@@ -7,7 +7,7 @@
7
7
  [![TypeScript](https://img.shields.io/badge/TypeScript-5.0+-blue.svg)](https://www.typescriptlang.org/)
8
8
  [![Node.js](https://img.shields.io/badge/Node.js-20+-green.svg)](https://nodejs.org/)
9
9
 
10
- **Version 1.3.5** | [Changelog](CHANGELOG.md) | [Issues](https://github.com/proffesor-for-testing/agentic-qe/issues) | [Discussions](https://github.com/proffesor-for-testing/agentic-qe/discussions)
10
+ **Version 1.3.7** | [Changelog](CHANGELOG.md) | [Issues](https://github.com/proffesor-for-testing/agentic-qe/issues) | [Discussions](https://github.com/proffesor-for-testing/agentic-qe/discussions)
11
11
 
12
12
  > Enterprise-grade test automation with AI learning, comprehensive skills library (34 QE skills), and 85.7% cost savings through intelligent model routing.
13
13
 
@@ -30,7 +30,7 @@ cd your-project
30
30
  aqe init
31
31
 
32
32
  # Add MCP server to Claude Code (optional)
33
- claude mcp add agentic-qe npx -y agentic-qe mcp:start
33
+ claude mcp add agentic-qe npx aqe-mcp
34
34
 
35
35
  # Verify connection
36
36
  claude mcp list
@@ -56,7 +56,8 @@ claude "Use qe-flaky-test-hunter to analyze the last 100 test runs and identify
56
56
  - ✅ Learning System (20% improvement target)
57
57
  - ✅ Pattern Bank (cross-project reuse)
58
58
  - ✅ ML Flaky Detection (100% accuracy)
59
- - ✅ 17 Specialized agent definitions
59
+ - ✅ 18 Specialized agent definitions (including qe-code-complexity)
60
+ - ✅ 34 World-class QE skills library
60
61
  - ✅ 8 AQE slash commands
61
62
  - ✅ Configuration directory
62
63
 
@@ -65,7 +66,7 @@ claude "Use qe-flaky-test-hunter to analyze the last 100 test runs and identify
65
66
  ## ✨ Features
66
67
 
67
68
  ### 🤖 Autonomous Agent Fleet
68
- - **17 Specialized Agents**: Expert agents for every QE domain (test generation, coverage analysis, security scanning, performance testing)
69
+ - **18 Specialized Agents**: Expert agents for every QE domain (test generation, coverage analysis, security scanning, performance testing, code complexity analysis)
69
70
  - **AI-Powered Coordination**: Event-driven architecture with intelligent task distribution
70
71
  - **Zero External Dependencies**: Native AQE hooks system (100-500x faster than external coordination)
71
72
  - **Scalable**: From single developer projects to enterprise-scale testing infrastructure
@@ -205,6 +206,9 @@ claude "Use qe-chaos-engineer to inject random failures and validate system resi
205
206
 
206
207
  # Flaky test detection with ML
207
208
  claude "Use qe-flaky-test-hunter to analyze the last 100 test runs and identify flaky tests with ML-powered root cause analysis"
209
+
210
+ # Code complexity analysis
211
+ claude "Use qe-code-complexity to analyze src/ directory and get refactoring recommendations for complex code"
208
212
  ```
209
213
 
210
214
  ### Example 6: Fleet Coordination at Scale
@@ -358,7 +362,7 @@ Model Usage:
358
362
  ## 🤖 Agent Types
359
363
 
360
364
  <details>
361
- <summary><b>Core Testing Agents (5 agents)</b></summary>
365
+ <summary><b>Core Testing Agents (6 agents)</b></summary>
362
366
 
363
367
  | Agent | Purpose | Key Features | Phase 2 Enhancements |
364
368
  |-------|---------|-------------|---------------------|
@@ -367,6 +371,7 @@ Model Usage:
367
371
  | **coverage-analyzer** | Real-time gap analysis | O(log n) algorithms, trend tracking | ✅ Learning, Pattern recommendations |
368
372
  | **quality-gate** | Intelligent validation | ML-driven decisions, risk assessment | ✅ Flaky test metrics |
369
373
  | **quality-analyzer** | Metrics analysis | ESLint, SonarQube, Lighthouse integration | - |
374
+ | **code-complexity** | Complexity analysis | Cyclomatic/cognitive metrics, refactoring recommendations | ✅ Educational agent |
370
375
 
371
376
  </details>
372
377
 
@@ -423,7 +428,7 @@ Model Usage:
423
428
 
424
429
  </details>
425
430
 
426
- **Total: 17 Agents** (16 QE-specific + 1 general-purpose)
431
+ **Total: 19 Agents** (18 QE-specific + 1 general-purpose)
427
432
 
428
433
  ---
429
434
 
@@ -501,6 +506,31 @@ Model Usage:
501
506
 
502
507
  ## 📝 Recent Changes
503
508
 
509
+ ### v1.3.6 (2025-10-30)
510
+ **Stability & Educational Release**
511
+
512
+ - ✅ **Fixed 16 critical TypeScript compilation errors** blocking production builds
513
+ - ✅ **Integrated CodeComplexityAnalyzerAgent** (educational example from PR #22 by @mondweep)
514
+ - ✅ **Zero functional regressions** - all core functionality tested and stable
515
+ - ✅ **Build stability improvements** - TypeScript compilation passing with 0 errors
516
+ - ✅ **BaseAgent property encapsulation** - proper lifecycle manager integration
517
+ - ✅ **Clean cherry-pick** from PR #22 with zero conflicts
518
+
519
+ **Technical Improvements**:
520
+ - BaseAgent property access patterns now use lifecycle manager accessors
521
+ - AccessControlDAO interface mapping corrected (`resourceId`, `owner` properties)
522
+ - Permission enum usage standardized (READ, WRITE, DELETE, SHARE)
523
+ - AgentLifecycleManager and AgentCoordinator properly integrated
524
+
525
+ **New Capabilities**:
526
+ - 📊 Code complexity analysis agent (cyclomatic & cognitive complexity)
527
+ - 🎯 Quality scoring system (0-100 scale)
528
+ - 🤖 AI-powered refactoring recommendations
529
+ - 📚 Complete BaseAgent pattern demonstration
530
+ - 📖 463-line architecture guide for learning
531
+
532
+ **Contributors**: @mondweep (CodeComplexityAnalyzerAgent), AQE Development Team
533
+
504
534
  ### v1.3.5 (2025-10-27) - Learning System Complete & Critical Policies
505
535
 
506
536
  **Phase 2 Features Complete:**
@@ -10,6 +10,9 @@ import { PerformanceTracker } from '../learning/PerformanceTracker';
10
10
  import { LearningEngine } from '../learning/LearningEngine';
11
11
  import { LearningConfig, StrategyRecommendation } from '../learning/types';
12
12
  import { AgentDBManager, AgentDBConfig } from '../core/memory/AgentDBManager';
13
+ import { AgentLifecycleManager } from './lifecycle/AgentLifecycleManager';
14
+ import { AgentCoordinator } from './coordination/AgentCoordinator';
15
+ import { AgentMemoryService } from './memory/AgentMemoryService';
13
16
  export interface BaseAgentConfig {
14
17
  id?: string;
15
18
  type: AgentType;
@@ -28,12 +31,10 @@ export interface BaseAgentConfig {
28
31
  }
29
32
  export declare abstract class BaseAgent extends EventEmitter {
30
33
  protected readonly agentId: AgentId;
31
- protected status: AgentStatus;
32
34
  protected readonly capabilities: Map<string, AgentCapability>;
33
35
  protected readonly context: AgentContext;
34
36
  protected readonly memoryStore: MemoryStore;
35
37
  protected readonly eventBus: EventEmitter;
36
- protected readonly eventHandlers: Map<string, EventHandler[]>;
37
38
  protected currentTask?: TaskAssignment;
38
39
  protected hookManager: VerificationHookManager;
39
40
  protected performanceTracker?: PerformanceTracker;
@@ -49,6 +50,9 @@ export declare abstract class BaseAgent extends EventEmitter {
49
50
  lastActivity: Date;
50
51
  };
51
52
  private taskStartTime?;
53
+ protected readonly lifecycleManager: AgentLifecycleManager;
54
+ protected readonly coordinator: AgentCoordinator;
55
+ protected readonly memoryService: AgentMemoryService;
52
56
  constructor(config: BaseAgentConfig);
53
57
  /**
54
58
  * Initialize the agent - must be called after construction
@@ -1 +1 @@
1
- {"version":3,"file":"BaseAgent.d.ts","sourceRoot":"","sources":["../../src/agents/BaseAgent.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"BaseAgent.d.ts","sourceRoot":"","sources":["../../src/agents/BaseAgent.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,QAAQ,CAAC;AAEtC,OAAO,EACL,OAAO,EACP,WAAW,IAAI,SAAS,EACxB,WAAW,EACX,YAAY,EACZ,eAAe,EAEf,YAAY,EACZ,WAAW,EACX,MAAM,EACN,cAAc,EAGd,WAAW,EACX,YAAY,EACZ,aAAa,EACd,MAAM,UAAU,CAAC;AAClB,OAAO,EAAE,uBAAuB,EAAE,MAAM,eAAe,CAAC;AAExD,OAAO,EAAE,kBAAkB,EAAE,MAAM,gCAAgC,CAAC;AAEpE,OAAO,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AAC5D,OAAO,EAAE,cAAc,EAAE,sBAAsB,EAAE,MAAM,mBAAmB,CAAC;AAC3E,OAAO,EAAE,cAAc,EAAE,aAAa,EAAwB,MAAM,+BAA+B,CAAC;AACpG,OAAO,EAAE,qBAAqB,EAAE,MAAM,mCAAmC,CAAC;AAC1E,OAAO,EAAE,gBAAgB,EAAE,MAAM,iCAAiC,CAAC;AACnE,OAAO,EAAE,kBAAkB,EAAE,MAAM,6BAA6B,CAAC;AAEjE,MAAM,WAAW,eAAe;IAC9B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,EAAE,eAAe,EAAE,CAAC;IAChC,OAAO,EAAE,YAAY,CAAC;IACtB,WAAW,EAAE,WAAW,CAAC;IACzB,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,cAAc,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC,CAAC;IACzC,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IAGvC,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,gBAAgB,CAAC,EAAE,QAAQ,GAAG,QAAQ,GAAG,SAAS,GAAG,MAAM,CAAC;CAC7D;AAED,8BAAsB,SAAU,SAAQ,YAAY;IAClD,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,OAAO,CAAC;IACpC,SAAS,CAAC,QAAQ,CAAC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,eAAe,CAAC,CAAC;IAC9D,SAAS,CAAC,QAAQ,CAAC,OAAO,EAAE,YAAY,CAAC;IACzC,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,WAAW,CAAC;IAC5C,SAAS,CAAC,QAAQ,CAAC,QAAQ,EAAE,YAAY,CAAC;IAC1C,SAAS,CAAC,WAAW,CAAC,EAAE,cAAc,CAAC;IACvC,SAAS,CAAC,WAAW,EAAE,uBAAuB,CAAC;IAC/C,SAAS,CAAC,kBAAkB,CAAC,EAAE,kBAAkB,CAAC;IAClD,SAAS,CAAC,cAAc,CAAC,EAAE,cAAc,CAAC;IAC1C,SAAS,CAAC,QAAQ,CAAC,cAAc,EAAE,OAAO,CAAC;IAC3C,OAAO,CAAC,cAAc,CAAC,CAA0B;IACjD,SAAS,CAAC,OAAO,CAAC,EAAE,cAAc,CAAC;IACnC,SAAS,CAAC,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;IACjD,SAAS,CAAC,kBAAkB,EAAE;QAC5B,cAAc,EAAE,MAAM,CAAC;QACvB,oBAAoB,EAAE,MAAM,CAAC;QAC7B,UAAU,EAAE,MAAM,CAAC;QACnB,YAAY,EAAE,IAAI,CAAC;KACpB,CAKC;IACF,OAAO,CAAC,aAAa,CAAC,CAAS;IAG/B,SAAS,CAAC,QAAQ,CAAC,gBAAgB,EAAE,qBAAqB,CAAC;IAC3D,SAAS,CAAC,QAAQ,CAAC,WAAW,EAAE,gBAAgB,CAAC;IACjD,SAAS,CAAC,QAAQ,CAAC,aAAa,EAAE,kBAAkB,CAAC;gBAEzC,MAAM,EAAE,eAAe;IA6DnC;;OAEG;IACU,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC;IAyDxC;;OAEG;IACU,WAAW,CAAC,UAAU,EAAE,cAAc,GAAG,OAAO,CAAC,GAAG,CAAC;IAsDlE;;OAEG;IACU,SAAS,IAAI,OAAO,CAAC,IAAI,CAAC;IAqCvC;;OAEG;IACI,SAAS,IAAI;QAClB,OAAO,EAAE,OAAO,CAAC;QACjB,MAAM,EAAE,WAAW,CAAC;QACpB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,YAAY,EAAE,MAAM,EAAE,CAAC;QACvB,kBAAkB,EAAE;YAClB,cAAc,EAAE,MAAM,CAAC;YACvB,oBAAoB,EAAE,MAAM,CAAC;YAC7B,UAAU,EAAE,MAAM,CAAC;YACnB,YAAY,EAAE,IAAI,CAAC;SACpB,CAAC;KACH;IAUD;;OAEG;IACI,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,OAAO;IAIrD;;OAEG;IACI,aAAa,CAAC,cAAc,EAAE,MAAM,GAAG,eAAe,GAAG,SAAS;IAIzE;;OAEG;IACI,eAAe,IAAI,eAAe,EAAE;IAI3C;;OAEG;IACU,iBAAiB,CAAC,SAAS,EAAE,GAAG,GAAG,OAAO,CAAC,sBAAsB,GAAG,IAAI,CAAC;IAUtF;;OAEG;IACI,kBAAkB;IAIzB;;OAEG;IACI,iBAAiB;;;;;;IAUxB;;;;OAIG;IACU,iBAAiB,CAAC,MAAM,EAAE,OAAO,CAAC,aAAa,CAAC,GAAG,OAAO,CAAC,IAAI,CAAC;IA0B7E;;OAEG;IACU,gBAAgB;;;;;;;;;IAiB7B;;OAEG;IACI,UAAU,IAAI,OAAO;IAI5B;;OAEG;IACU,KAAK,IAAI,OAAO,CAAC,IAAI,CAAC;IAInC;;OAEG;IACU,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAgBpD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,oBAAoB,IAAI,OAAO,CAAC,IAAI,CAAC;IAExD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAE1D;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,aAAa,IAAI,OAAO,CAAC,IAAI,CAAC;IAEjD;;OAEG;IACH,SAAS,CAAC,QAAQ,CAAC,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;IAM3C;;OAEG;IACH,SAAS,CAAC,oBAAoB,CAAC,CAAC,GAAG,GAAG,EAAE,OAAO,EAAE,YAAY,CAAC,CAAC,CAAC,GAAG,IAAI;IAIvE;;OAEG;IACH,SAAS,CAAC,SAAS,CAAC,IAAI,EAAE,MAAM,EAAE,IAAI,EAAE,GAAG,EAAE,QAAQ,GAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAqB,GAAG,IAAI;IAc/G;;;OAGG;cACa,gBAAgB,CAAC,IAAI,EAAE,MAAM,EAAE,OAAO,EAAE,GAAG,GAAG,OAAO,CAAC,IAAI,CAAC;IAmB3E;;OAEG;cACa,WAAW,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASjF;;OAEG;cACa,cAAc,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IASzD;;OAEG;cACa,iBAAiB,CAAC,GAAG,EAAE,MAAM,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IASvF;;OAEG;cACa,oBAAoB,CAAC,SAAS,EAAE,SAAS,EAAE,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC,GAAG,CAAC;IAarF;;;;;OAKG;cACa,SAAS,CAAC,IAAI,EAAE,WAAW,GAAG,OAAO,CAAC,IAAI,CAAC;IAgG3D;;;;;OAKG;cACa,UAAU,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAuJ7D;;;;;OAKG;cACa,WAAW,CAAC,IAAI,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC;YAyGjD,WAAW;IAezB,OAAO,CAAC,kBAAkB;IAmB1B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,sBAAsB;IAc9B,OAAO,CAAC,wBAAwB;YAelB,eAAe;YAQf,YAAY;YAYZ,SAAS;YAWT,YAAY;IAa1B,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,eAAe;IAIvB,OAAO,CAAC,iBAAiB;IAIzB;;;;;OAKG;IACH,OAAO,CAAC,mBAAmB;CAsB5B;AAMD,MAAM,WAAW,YAAY;IAC3B,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC;IAC1E,iBAAiB,IAAI,SAAS,EAAE,CAAC;IACjC,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,eAAe,EAAE,CAAC;CACrD;AAED,8BAAsB,gBAAiB,YAAW,YAAY;IAC5D,QAAQ,CAAC,WAAW,CAAC,IAAI,EAAE,SAAS,EAAE,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,SAAS,CAAC;IAClF,QAAQ,CAAC,iBAAiB,IAAI,SAAS,EAAE;IACzC,QAAQ,CAAC,eAAe,CAAC,IAAI,EAAE,SAAS,GAAG,eAAe,EAAE;CAC7D"}