agentic-qe 1.5.1 → 1.6.1
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.
- package/.claude/agents/qe-api-contract-validator.md +118 -0
- package/.claude/agents/qe-chaos-engineer.md +320 -5
- package/.claude/agents/qe-code-complexity.md +360 -0
- package/.claude/agents/qe-coverage-analyzer.md +112 -0
- package/.claude/agents/qe-deployment-readiness.md +322 -6
- package/.claude/agents/qe-flaky-test-hunter.md +115 -0
- package/.claude/agents/qe-fleet-commander.md +319 -6
- package/.claude/agents/qe-performance-tester.md +234 -0
- package/.claude/agents/qe-production-intelligence.md +114 -0
- package/.claude/agents/qe-quality-analyzer.md +126 -0
- package/.claude/agents/qe-quality-gate.md +119 -0
- package/.claude/agents/qe-regression-risk-analyzer.md +114 -0
- package/.claude/agents/qe-requirements-validator.md +114 -0
- package/.claude/agents/qe-security-scanner.md +118 -0
- package/.claude/agents/qe-test-data-architect.md +234 -0
- package/.claude/agents/qe-test-executor.md +115 -0
- package/.claude/agents/qe-test-generator.md +114 -0
- package/.claude/agents/qe-visual-tester.md +305 -6
- package/.claude/agents/subagents/qe-code-reviewer.md +0 -4
- package/.claude/agents/subagents/qe-data-generator.md +0 -16
- package/.claude/agents/subagents/qe-integration-tester.md +0 -17
- package/.claude/agents/subagents/qe-performance-validator.md +0 -16
- package/.claude/agents/subagents/qe-security-auditor.md +0 -16
- package/.claude/agents/subagents/qe-test-implementer.md +0 -17
- package/.claude/agents/subagents/qe-test-refactorer.md +0 -17
- package/.claude/agents/subagents/qe-test-writer.md +0 -19
- package/.claude/skills/brutal-honesty-review/README.md +218 -0
- package/.claude/skills/brutal-honesty-review/SKILL.md +725 -0
- package/.claude/skills/brutal-honesty-review/resources/assessment-rubrics.md +295 -0
- package/.claude/skills/brutal-honesty-review/resources/review-template.md +102 -0
- package/.claude/skills/brutal-honesty-review/scripts/assess-code.sh +179 -0
- package/.claude/skills/brutal-honesty-review/scripts/assess-tests.sh +223 -0
- package/.claude/skills/cicd-pipeline-qe-orchestrator/README.md +301 -0
- package/.claude/skills/cicd-pipeline-qe-orchestrator/SKILL.md +510 -0
- package/.claude/skills/cicd-pipeline-qe-orchestrator/resources/workflows/microservice-pipeline.md +239 -0
- package/.claude/skills/cicd-pipeline-qe-orchestrator/resources/workflows/mobile-pipeline.md +375 -0
- package/.claude/skills/cicd-pipeline-qe-orchestrator/resources/workflows/monolith-pipeline.md +268 -0
- package/.claude/skills/six-thinking-hats/README.md +190 -0
- package/.claude/skills/six-thinking-hats/SKILL.md +1215 -0
- package/.claude/skills/six-thinking-hats/resources/examples/api-testing-example.md +345 -0
- package/.claude/skills/six-thinking-hats/resources/templates/solo-session-template.md +167 -0
- package/.claude/skills/six-thinking-hats/resources/templates/team-session-template.md +336 -0
- package/CHANGELOG.md +2472 -2129
- package/README.md +48 -10
- package/dist/adapters/MemoryStoreAdapter.d.ts +38 -0
- package/dist/adapters/MemoryStoreAdapter.d.ts.map +1 -1
- package/dist/adapters/MemoryStoreAdapter.js +22 -0
- package/dist/adapters/MemoryStoreAdapter.js.map +1 -1
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +13 -0
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/cli/commands/init-claude-md-template.d.ts +16 -0
- package/dist/cli/commands/init-claude-md-template.d.ts.map +1 -0
- package/dist/cli/commands/init-claude-md-template.js +69 -0
- package/dist/cli/commands/init-claude-md-template.js.map +1 -0
- package/dist/cli/commands/init.d.ts +1 -1
- package/dist/cli/commands/init.d.ts.map +1 -1
- package/dist/cli/commands/init.js +509 -460
- package/dist/cli/commands/init.js.map +1 -1
- package/dist/core/memory/AgentDBService.d.ts +33 -28
- package/dist/core/memory/AgentDBService.d.ts.map +1 -1
- package/dist/core/memory/AgentDBService.js +233 -290
- package/dist/core/memory/AgentDBService.js.map +1 -1
- package/dist/core/memory/EnhancedAgentDBService.d.ts.map +1 -1
- package/dist/core/memory/EnhancedAgentDBService.js +5 -3
- package/dist/core/memory/EnhancedAgentDBService.js.map +1 -1
- package/dist/core/memory/RealAgentDBAdapter.d.ts +9 -2
- package/dist/core/memory/RealAgentDBAdapter.d.ts.map +1 -1
- package/dist/core/memory/RealAgentDBAdapter.js +126 -100
- package/dist/core/memory/RealAgentDBAdapter.js.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.d.ts +58 -0
- package/dist/core/memory/SwarmMemoryManager.d.ts.map +1 -1
- package/dist/core/memory/SwarmMemoryManager.js +176 -0
- package/dist/core/memory/SwarmMemoryManager.js.map +1 -1
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +2 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/learning/LearningEngine.d.ts +14 -27
- package/dist/learning/LearningEngine.d.ts.map +1 -1
- package/dist/learning/LearningEngine.js +57 -119
- package/dist/learning/LearningEngine.js.map +1 -1
- package/dist/learning/index.d.ts +0 -1
- package/dist/learning/index.d.ts.map +1 -1
- package/dist/learning/index.js +0 -1
- package/dist/learning/index.js.map +1 -1
- package/dist/mcp/handlers/learning/learning-query.d.ts +34 -0
- package/dist/mcp/handlers/learning/learning-query.d.ts.map +1 -0
- package/dist/mcp/handlers/learning/learning-query.js +156 -0
- package/dist/mcp/handlers/learning/learning-query.js.map +1 -0
- package/dist/mcp/handlers/learning/learning-store-experience.d.ts +30 -0
- package/dist/mcp/handlers/learning/learning-store-experience.d.ts.map +1 -0
- package/dist/mcp/handlers/learning/learning-store-experience.js +86 -0
- package/dist/mcp/handlers/learning/learning-store-experience.js.map +1 -0
- package/dist/mcp/handlers/learning/learning-store-pattern.d.ts +31 -0
- package/dist/mcp/handlers/learning/learning-store-pattern.d.ts.map +1 -0
- package/dist/mcp/handlers/learning/learning-store-pattern.js +126 -0
- package/dist/mcp/handlers/learning/learning-store-pattern.js.map +1 -0
- package/dist/mcp/handlers/learning/learning-store-qvalue.d.ts +30 -0
- package/dist/mcp/handlers/learning/learning-store-qvalue.d.ts.map +1 -0
- package/dist/mcp/handlers/learning/learning-store-qvalue.js +100 -0
- package/dist/mcp/handlers/learning/learning-store-qvalue.js.map +1 -0
- package/dist/mcp/server.d.ts +11 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +98 -1
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/services/LearningEventListener.d.ts +123 -0
- package/dist/mcp/services/LearningEventListener.d.ts.map +1 -0
- package/dist/mcp/services/LearningEventListener.js +322 -0
- package/dist/mcp/services/LearningEventListener.js.map +1 -0
- package/dist/mcp/tools.d.ts +4 -0
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +179 -0
- package/dist/mcp/tools.js.map +1 -1
- package/dist/types/memory-interfaces.d.ts +71 -0
- package/dist/types/memory-interfaces.d.ts.map +1 -1
- package/dist/utils/Calculator.d.ts +35 -0
- package/dist/utils/Calculator.d.ts.map +1 -0
- package/dist/utils/Calculator.js +50 -0
- package/dist/utils/Calculator.js.map +1 -0
- package/dist/utils/Logger.d.ts.map +1 -1
- package/dist/utils/Logger.js +4 -1
- package/dist/utils/Logger.js.map +1 -1
- package/package.json +7 -5
- package/.claude/agents/qe-api-contract-validator.md.backup +0 -1148
- package/.claude/agents/qe-api-contract-validator.md.backup-20251107-134747 +0 -1148
- package/.claude/agents/qe-api-contract-validator.md.backup-phase2-20251107-140039 +0 -1123
- package/.claude/agents/qe-chaos-engineer.md.backup +0 -808
- package/.claude/agents/qe-chaos-engineer.md.backup-20251107-134747 +0 -808
- package/.claude/agents/qe-chaos-engineer.md.backup-phase2-20251107-140039 +0 -787
- package/.claude/agents/qe-code-complexity.md.backup +0 -291
- package/.claude/agents/qe-code-complexity.md.backup-20251107-134747 +0 -291
- package/.claude/agents/qe-code-complexity.md.backup-phase2-20251107-140039 +0 -286
- package/.claude/agents/qe-coverage-analyzer.md.backup +0 -467
- package/.claude/agents/qe-coverage-analyzer.md.backup-20251107-134747 +0 -467
- package/.claude/agents/qe-coverage-analyzer.md.backup-phase2-20251107-140039 +0 -438
- package/.claude/agents/qe-deployment-readiness.md.backup +0 -1166
- package/.claude/agents/qe-deployment-readiness.md.backup-20251107-134747 +0 -1166
- package/.claude/agents/qe-deployment-readiness.md.backup-phase2-20251107-140039 +0 -1140
- package/.claude/agents/qe-flaky-test-hunter.md.backup +0 -1195
- package/.claude/agents/qe-flaky-test-hunter.md.backup-20251107-134747 +0 -1195
- package/.claude/agents/qe-flaky-test-hunter.md.backup-phase2-20251107-140039 +0 -1162
- package/.claude/agents/qe-fleet-commander.md.backup +0 -718
- package/.claude/agents/qe-fleet-commander.md.backup-20251107-134747 +0 -718
- package/.claude/agents/qe-fleet-commander.md.backup-phase2-20251107-140039 +0 -697
- package/.claude/agents/qe-performance-tester.md.backup +0 -428
- package/.claude/agents/qe-performance-tester.md.backup-20251107-134747 +0 -428
- package/.claude/agents/qe-performance-tester.md.backup-phase2-20251107-140039 +0 -372
- package/.claude/agents/qe-production-intelligence.md.backup +0 -1219
- package/.claude/agents/qe-production-intelligence.md.backup-20251107-134747 +0 -1219
- package/.claude/agents/qe-production-intelligence.md.backup-phase2-20251107-140039 +0 -1194
- package/.claude/agents/qe-quality-analyzer.md.backup +0 -425
- package/.claude/agents/qe-quality-analyzer.md.backup-20251107-134747 +0 -425
- package/.claude/agents/qe-quality-analyzer.md.backup-phase2-20251107-140039 +0 -394
- package/.claude/agents/qe-quality-gate.md.backup +0 -446
- package/.claude/agents/qe-quality-gate.md.backup-20251107-134747 +0 -446
- package/.claude/agents/qe-quality-gate.md.backup-phase2-20251107-140039 +0 -415
- package/.claude/agents/qe-regression-risk-analyzer.md.backup +0 -1009
- package/.claude/agents/qe-regression-risk-analyzer.md.backup-20251107-134747 +0 -1009
- package/.claude/agents/qe-regression-risk-analyzer.md.backup-phase2-20251107-140039 +0 -984
- package/.claude/agents/qe-requirements-validator.md.backup +0 -748
- package/.claude/agents/qe-requirements-validator.md.backup-20251107-134747 +0 -748
- package/.claude/agents/qe-requirements-validator.md.backup-phase2-20251107-140039 +0 -723
- package/.claude/agents/qe-security-scanner.md.backup +0 -634
- package/.claude/agents/qe-security-scanner.md.backup-20251107-134747 +0 -634
- package/.claude/agents/qe-security-scanner.md.backup-phase2-20251107-140039 +0 -573
- package/.claude/agents/qe-test-data-architect.md.backup +0 -1064
- package/.claude/agents/qe-test-data-architect.md.backup-20251107-134747 +0 -1064
- package/.claude/agents/qe-test-data-architect.md.backup-phase2-20251107-140039 +0 -1040
- package/.claude/agents/qe-test-executor.md.backup +0 -389
- package/.claude/agents/qe-test-executor.md.backup-20251107-134747 +0 -389
- package/.claude/agents/qe-test-executor.md.backup-phase2-20251107-140039 +0 -369
- package/.claude/agents/qe-test-generator.md.backup +0 -997
- package/.claude/agents/qe-test-generator.md.backup-20251107-134747 +0 -997
- package/.claude/agents/qe-visual-tester.md.backup +0 -777
- package/.claude/agents/qe-visual-tester.md.backup-20251107-134747 +0 -777
- package/.claude/agents/qe-visual-tester.md.backup-phase2-20251107-140039 +0 -756
- package/.claude/commands/analysis/COMMAND_COMPLIANCE_REPORT.md +0 -54
- package/.claude/commands/analysis/performance-bottlenecks.md +0 -59
- package/.claude/commands/flow-nexus/app-store.md +0 -124
- package/.claude/commands/flow-nexus/challenges.md +0 -120
- package/.claude/commands/flow-nexus/login-registration.md +0 -65
- package/.claude/commands/flow-nexus/neural-network.md +0 -134
- package/.claude/commands/flow-nexus/payments.md +0 -116
- package/.claude/commands/flow-nexus/sandbox.md +0 -83
- package/.claude/commands/flow-nexus/swarm.md +0 -87
- package/.claude/commands/flow-nexus/user-tools.md +0 -152
- package/.claude/commands/flow-nexus/workflow.md +0 -115
- package/.claude/commands/memory/usage.md +0 -46
|
@@ -1,286 +0,0 @@
|
|
|
1
|
-
---
|
|
2
|
-
name: qe-code-complexity
|
|
3
|
-
description: Educational code complexity analyzer demonstrating the Agentic QE Fleet architecture
|
|
4
|
-
---
|
|
5
|
-
|
|
6
|
-
# QE Code Complexity Analyzer
|
|
7
|
-
|
|
8
|
-
## Overview
|
|
9
|
-
|
|
10
|
-
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.
|
|
11
|
-
|
|
12
|
-
**Purpose**: Learning tool to understand how agents work in the AQE fleet.
|
|
13
|
-
|
|
14
|
-
## Capabilities
|
|
15
|
-
|
|
16
|
-
### 1. Complexity Analysis
|
|
17
|
-
- **Cyclomatic Complexity**: Measures decision point density
|
|
18
|
-
- **Cognitive Complexity**: Accounts for nesting and control flow
|
|
19
|
-
- **File Size Analysis**: Identifies overly large files
|
|
20
|
-
- **Function Metrics**: Tracks function count and average complexity
|
|
21
|
-
|
|
22
|
-
### 2. Refactoring Recommendations
|
|
23
|
-
- AI-powered suggestions based on detected patterns
|
|
24
|
-
- Severity-based prioritization (low, medium, high, critical)
|
|
25
|
-
- Specific actionable advice (e.g., "Extract Method", "Reduce Nesting")
|
|
26
|
-
|
|
27
|
-
### 3. Quality Scoring
|
|
28
|
-
- Holistic quality score (0-100)
|
|
29
|
-
- Issue-based deductions
|
|
30
|
-
- Helps prioritize refactoring efforts
|
|
31
|
-
|
|
32
|
-
## Key Learning Concepts
|
|
33
|
-
|
|
34
|
-
### BaseAgent Pattern
|
|
35
|
-
```typescript
|
|
36
|
-
// All agents extend BaseAgent
|
|
37
|
-
export class CodeComplexityAnalyzerAgent extends BaseAgent {
|
|
38
|
-
// Define capabilities in constructor
|
|
39
|
-
constructor(config: CodeComplexityConfig) {
|
|
40
|
-
super({
|
|
41
|
-
...config,
|
|
42
|
-
type: QEAgentType.QUALITY_ANALYZER,
|
|
43
|
-
capabilities: [/* ... */]
|
|
44
|
-
});
|
|
45
|
-
}
|
|
46
|
-
}
|
|
47
|
-
```
|
|
48
|
-
|
|
49
|
-
### Lifecycle Hooks
|
|
50
|
-
```typescript
|
|
51
|
-
// Pre-task: Load context before work
|
|
52
|
-
protected async onPreTask(data: { assignment: any }): Promise<void> {
|
|
53
|
-
const history = await this.memoryStore.retrieve('aqe/complexity/.../history');
|
|
54
|
-
// Use historical data to improve analysis
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
// Post-task: Store results and coordinate
|
|
58
|
-
protected async onPostTask(data: PostTaskData): Promise<void> {
|
|
59
|
-
await this.memoryStore.store('aqe/complexity/.../results', data.result);
|
|
60
|
-
this.eventBus.emit('complexity:analysis:completed', { ... });
|
|
61
|
-
}
|
|
62
|
-
|
|
63
|
-
// Error handling: Learn from failures
|
|
64
|
-
protected async onTaskError(data: { assignment: any; error: Error }): Promise<void> {
|
|
65
|
-
await this.memoryStore.store('aqe/complexity/.../errors/...', { ... });
|
|
66
|
-
}
|
|
67
|
-
```
|
|
68
|
-
|
|
69
|
-
### Memory System
|
|
70
|
-
```typescript
|
|
71
|
-
// Store results for other agents
|
|
72
|
-
await this.memoryStore.store(
|
|
73
|
-
'aqe/complexity/${agentId}/latest-result',
|
|
74
|
-
result,
|
|
75
|
-
86400 // 24 hour TTL
|
|
76
|
-
);
|
|
77
|
-
|
|
78
|
-
// Retrieve for coordination
|
|
79
|
-
const previous = await this.memoryStore.retrieve(
|
|
80
|
-
'aqe/complexity/${agentId}/history'
|
|
81
|
-
);
|
|
82
|
-
```
|
|
83
|
-
|
|
84
|
-
### Event-Driven Architecture
|
|
85
|
-
```typescript
|
|
86
|
-
// Emit events for coordination
|
|
87
|
-
this.eventBus.emit('complexity:analysis:completed', {
|
|
88
|
-
agentId: this.agentId,
|
|
89
|
-
result: analysisResult,
|
|
90
|
-
timestamp: new Date()
|
|
91
|
-
});
|
|
92
|
-
|
|
93
|
-
// Other agents can subscribe
|
|
94
|
-
eventBus.on('complexity:analysis:completed', (event) => {
|
|
95
|
-
// Test generator could prioritize complex code
|
|
96
|
-
// Coverage analyzer could focus on complex functions
|
|
97
|
-
});
|
|
98
|
-
```
|
|
99
|
-
|
|
100
|
-
## Usage Examples
|
|
101
|
-
|
|
102
|
-
### From Claude Code CLI
|
|
103
|
-
|
|
104
|
-
```bash
|
|
105
|
-
# Analyze a single file
|
|
106
|
-
claude "Use qe-code-complexity to analyze src/services/order-processor.ts"
|
|
107
|
-
|
|
108
|
-
# Analyze multiple files
|
|
109
|
-
claude "Run complexity analysis on all files in src/services/"
|
|
110
|
-
|
|
111
|
-
# Get refactoring recommendations
|
|
112
|
-
claude "Analyze src/utils/validator.ts and suggest refactorings"
|
|
113
|
-
```
|
|
114
|
-
|
|
115
|
-
### Via TypeScript
|
|
116
|
-
|
|
117
|
-
```typescript
|
|
118
|
-
import { CodeComplexityAnalyzerAgent } from './agents/CodeComplexityAnalyzerAgent';
|
|
119
|
-
|
|
120
|
-
// Initialize agent
|
|
121
|
-
const agent = new CodeComplexityAnalyzerAgent({
|
|
122
|
-
type: QEAgentType.QUALITY_ANALYZER,
|
|
123
|
-
capabilities: [],
|
|
124
|
-
context: { /* ... */ },
|
|
125
|
-
memoryStore,
|
|
126
|
-
eventBus,
|
|
127
|
-
thresholds: {
|
|
128
|
-
cyclomaticComplexity: 10,
|
|
129
|
-
cognitiveComplexity: 15,
|
|
130
|
-
linesOfCode: 300
|
|
131
|
-
},
|
|
132
|
-
enableRecommendations: true
|
|
133
|
-
});
|
|
134
|
-
|
|
135
|
-
await agent.initialize();
|
|
136
|
-
|
|
137
|
-
// Analyze code
|
|
138
|
-
const result = await agent.analyzeComplexity({
|
|
139
|
-
files: [{
|
|
140
|
-
path: 'complex.ts',
|
|
141
|
-
content: sourceCode,
|
|
142
|
-
language: 'typescript'
|
|
143
|
-
}]
|
|
144
|
-
});
|
|
145
|
-
|
|
146
|
-
console.log('Quality Score:', result.score);
|
|
147
|
-
console.log('Issues:', result.issues);
|
|
148
|
-
console.log('Recommendations:', result.recommendations);
|
|
149
|
-
```
|
|
150
|
-
|
|
151
|
-
## Configuration
|
|
152
|
-
|
|
153
|
-
### Thresholds
|
|
154
|
-
|
|
155
|
-
Customize complexity thresholds:
|
|
156
|
-
|
|
157
|
-
```typescript
|
|
158
|
-
{
|
|
159
|
-
thresholds: {
|
|
160
|
-
cyclomaticComplexity: 10, // Default: 10
|
|
161
|
-
cognitiveComplexity: 15, // Default: 15
|
|
162
|
-
linesOfCode: 300 // Default: 300
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
```
|
|
166
|
-
|
|
167
|
-
### Features
|
|
168
|
-
|
|
169
|
-
```typescript
|
|
170
|
-
{
|
|
171
|
-
enableRecommendations: true, // Default: true
|
|
172
|
-
enableLearning: true // Default: false (demo uses false)
|
|
173
|
-
}
|
|
174
|
-
```
|
|
175
|
-
|
|
176
|
-
## Integration with Other Agents
|
|
177
|
-
|
|
178
|
-
### Test Generator
|
|
179
|
-
The test-generator agent can use complexity analysis to:
|
|
180
|
-
- Prioritize complex functions for testing
|
|
181
|
-
- Generate more comprehensive tests for high-complexity code
|
|
182
|
-
- Focus on edge cases in nested logic
|
|
183
|
-
|
|
184
|
-
```typescript
|
|
185
|
-
eventBus.on('complexity:analysis:completed', async (event) => {
|
|
186
|
-
if (event.result.issues.some(i => i.severity === 'critical')) {
|
|
187
|
-
// Test generator: Create extra tests for critical complexity
|
|
188
|
-
await testGeneratorAgent.generateTests({
|
|
189
|
-
focusAreas: event.result.issues
|
|
190
|
-
.filter(i => i.severity === 'critical')
|
|
191
|
-
.map(i => i.file)
|
|
192
|
-
});
|
|
193
|
-
}
|
|
194
|
-
});
|
|
195
|
-
```
|
|
196
|
-
|
|
197
|
-
### Coverage Analyzer
|
|
198
|
-
The coverage-analyzer can use complexity data to:
|
|
199
|
-
- Ensure high-complexity code has high coverage
|
|
200
|
-
- Identify risk areas (high complexity + low coverage)
|
|
201
|
-
|
|
202
|
-
### Quality Gate
|
|
203
|
-
The quality-gate can use complexity metrics as criteria:
|
|
204
|
-
- Fail builds with critical complexity issues
|
|
205
|
-
- Track complexity trends over time
|
|
206
|
-
- Prevent complexity regressions
|
|
207
|
-
|
|
208
|
-
## Example Output
|
|
209
|
-
|
|
210
|
-
```
|
|
211
|
-
Quality Score: 65/100
|
|
212
|
-
|
|
213
|
-
⚠️ Issues Detected:
|
|
214
|
-
1. [HIGH] cyclomatic
|
|
215
|
-
Current: 23, Threshold: 10
|
|
216
|
-
Consider breaking down complex logic into smaller functions
|
|
217
|
-
|
|
218
|
-
2. [MEDIUM] cognitive
|
|
219
|
-
Current: 18, Threshold: 15
|
|
220
|
-
Reduce nesting levels and simplify control flow
|
|
221
|
-
|
|
222
|
-
💡 Recommendations:
|
|
223
|
-
1. Apply Extract Method refactoring to reduce cyclomatic complexity
|
|
224
|
-
2. Use early returns to reduce nesting levels
|
|
225
|
-
3. Extract nested loops into separate methods
|
|
226
|
-
```
|
|
227
|
-
|
|
228
|
-
## Learning Objectives
|
|
229
|
-
|
|
230
|
-
By studying this agent, you'll learn:
|
|
231
|
-
|
|
232
|
-
1. ✅ **BaseAgent Pattern**: How to extend and customize agents
|
|
233
|
-
2. ✅ **Lifecycle Hooks**: Pre-task, post-task, and error handling
|
|
234
|
-
3. ✅ **Memory System**: Storing and retrieving agent data
|
|
235
|
-
4. ✅ **Event System**: Coordinating multiple agents
|
|
236
|
-
5. ✅ **Testing Patterns**: Comprehensive test coverage
|
|
237
|
-
6. ✅ **Agent Coordination**: How agents work together
|
|
238
|
-
|
|
239
|
-
## Running the Example
|
|
240
|
-
|
|
241
|
-
```bash
|
|
242
|
-
# Run the demo
|
|
243
|
-
npx ts-node examples/complexity-analysis/demo.ts
|
|
244
|
-
|
|
245
|
-
# Run tests
|
|
246
|
-
npm test tests/agents/CodeComplexityAnalyzerAgent.test.ts
|
|
247
|
-
```
|
|
248
|
-
|
|
249
|
-
## Architecture Insights
|
|
250
|
-
|
|
251
|
-
### Memory Namespace
|
|
252
|
-
- `aqe/complexity/${agentId}/current-request` - Active analysis request
|
|
253
|
-
- `aqe/complexity/${agentId}/latest-result` - Most recent result
|
|
254
|
-
- `aqe/complexity/${agentId}/history` - Historical analyses (last 100)
|
|
255
|
-
- `aqe/complexity/${agentId}/errors/*` - Error tracking
|
|
256
|
-
|
|
257
|
-
### Events Emitted
|
|
258
|
-
- `complexity:analysis:completed` - When analysis finishes successfully
|
|
259
|
-
- `complexity:analysis:stored` - When results are persisted
|
|
260
|
-
|
|
261
|
-
### Capabilities Provided
|
|
262
|
-
- `complexity-analysis` - Core analysis functionality
|
|
263
|
-
- `refactoring-recommendations` - AI-powered suggestions
|
|
264
|
-
- `pattern-detection` - Complex code pattern recognition
|
|
265
|
-
|
|
266
|
-
## Next Steps
|
|
267
|
-
|
|
268
|
-
After understanding this agent, explore:
|
|
269
|
-
- **TestGeneratorAgent**: See how it generates tests
|
|
270
|
-
- **CoverageAnalyzerAgent**: Learn about O(log n) gap detection
|
|
271
|
-
- **FleetManager**: Understand multi-agent coordination
|
|
272
|
-
- **LearningEngine**: Discover how agents improve over time
|
|
273
|
-
|
|
274
|
-
## Resources
|
|
275
|
-
|
|
276
|
-
- **Source Code**: `src/agents/CodeComplexityAnalyzerAgent.ts`
|
|
277
|
-
- **Tests**: `tests/agents/CodeComplexityAnalyzerAgent.test.ts`
|
|
278
|
-
- **Demo**: `examples/complexity-analysis/demo.ts`
|
|
279
|
-
- **BaseAgent**: `src/agents/BaseAgent.ts`
|
|
280
|
-
|
|
281
|
-
|
|
282
|
-
**Educational Agent**: This agent is designed for learning. For production complexity analysis, consider:
|
|
283
|
-
- ESLint with complexity rules
|
|
284
|
-
- SonarQube
|
|
285
|
-
- CodeClimate
|
|
286
|
-
- Commercial static analysis tools
|