@monoes/monomindcli 1.15.4 → 1.15.5
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/dist/src/mcp-client.d.ts.map +1 -1
- package/dist/src/mcp-client.js +7 -0
- package/dist/src/mcp-client.js.map +1 -1
- package/dist/src/mcp-tools/coherence/causal-infer.d.ts +15 -0
- package/dist/src/mcp-tools/coherence/causal-infer.d.ts.map +1 -0
- package/dist/src/mcp-tools/coherence/causal-infer.js +347 -0
- package/dist/src/mcp-tools/coherence/causal-infer.js.map +1 -0
- package/dist/src/mcp-tools/coherence/coherence-check.d.ts +15 -0
- package/dist/src/mcp-tools/coherence/coherence-check.d.ts.map +1 -0
- package/dist/src/mcp-tools/coherence/coherence-check.js +206 -0
- package/dist/src/mcp-tools/coherence/coherence-check.js.map +1 -0
- package/dist/src/mcp-tools/coherence/consensus-verify.d.ts +15 -0
- package/dist/src/mcp-tools/coherence/consensus-verify.d.ts.map +1 -0
- package/dist/src/mcp-tools/coherence/consensus-verify.js +303 -0
- package/dist/src/mcp-tools/coherence/consensus-verify.js.map +1 -0
- package/dist/src/mcp-tools/coherence/memory-gate.d.ts +15 -0
- package/dist/src/mcp-tools/coherence/memory-gate.d.ts.map +1 -0
- package/dist/src/mcp-tools/coherence/memory-gate.js +266 -0
- package/dist/src/mcp-tools/coherence/memory-gate.js.map +1 -0
- package/dist/src/mcp-tools/coherence/quantum-topology.d.ts +15 -0
- package/dist/src/mcp-tools/coherence/quantum-topology.d.ts.map +1 -0
- package/dist/src/mcp-tools/coherence/quantum-topology.js +406 -0
- package/dist/src/mcp-tools/coherence/quantum-topology.js.map +1 -0
- package/dist/src/mcp-tools/coherence/spectral-analyze.d.ts +15 -0
- package/dist/src/mcp-tools/coherence/spectral-analyze.d.ts.map +1 -0
- package/dist/src/mcp-tools/coherence/spectral-analyze.js +293 -0
- package/dist/src/mcp-tools/coherence/spectral-analyze.js.map +1 -0
- package/dist/src/mcp-tools/coherence/types.d.ts +277 -0
- package/dist/src/mcp-tools/coherence/types.d.ts.map +1 -0
- package/dist/src/mcp-tools/coherence/types.js +159 -0
- package/dist/src/mcp-tools/coherence/types.js.map +1 -0
- package/dist/src/mcp-tools/coherence-tools.d.ts +9 -0
- package/dist/src/mcp-tools/coherence-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/coherence-tools.js +25 -0
- package/dist/src/mcp-tools/coherence-tools.js.map +1 -0
- package/dist/src/mcp-tools/quality/chaos-resilience/chaos-inject.d.ts +163 -0
- package/dist/src/mcp-tools/quality/chaos-resilience/chaos-inject.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/chaos-resilience/chaos-inject.js +414 -0
- package/dist/src/mcp-tools/quality/chaos-resilience/chaos-inject.js.map +1 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/analyze-coverage.d.ts +128 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/analyze-coverage.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/analyze-coverage.js +375 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/analyze-coverage.js.map +1 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts +161 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js +423 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/prioritize-gaps.js.map +1 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/track-trends.d.ts +165 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/track-trends.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/track-trends.js +395 -0
- package/dist/src/mcp-tools/quality/coverage-analysis/track-trends.js.map +1 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/analyze-root-cause.d.ts +165 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/analyze-root-cause.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/analyze-root-cause.js +508 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/analyze-root-cause.js.map +1 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/find-similar-defects.d.ts +147 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/find-similar-defects.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/find-similar-defects.js +391 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/find-similar-defects.js.map +1 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/predict-defects.d.ts +147 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/predict-defects.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/predict-defects.js +422 -0
- package/dist/src/mcp-tools/quality/defect-intelligence/predict-defects.js.map +1 -0
- package/dist/src/mcp-tools/quality/quality-assessment/assess-readiness.d.ts +185 -0
- package/dist/src/mcp-tools/quality/quality-assessment/assess-readiness.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/quality-assessment/assess-readiness.js +437 -0
- package/dist/src/mcp-tools/quality/quality-assessment/assess-readiness.js.map +1 -0
- package/dist/src/mcp-tools/quality/quality-assessment/calculate-risk.d.ts +166 -0
- package/dist/src/mcp-tools/quality/quality-assessment/calculate-risk.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/quality-assessment/calculate-risk.js +410 -0
- package/dist/src/mcp-tools/quality/quality-assessment/calculate-risk.js.map +1 -0
- package/dist/src/mcp-tools/quality/quality-assessment/evaluate-quality-gate.d.ts +201 -0
- package/dist/src/mcp-tools/quality/quality-assessment/evaluate-quality-gate.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/quality-assessment/evaluate-quality-gate.js +363 -0
- package/dist/src/mcp-tools/quality/quality-assessment/evaluate-quality-gate.js.map +1 -0
- package/dist/src/mcp-tools/quality/security-compliance/audit-compliance.d.ts +166 -0
- package/dist/src/mcp-tools/quality/security-compliance/audit-compliance.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/security-compliance/audit-compliance.js +394 -0
- package/dist/src/mcp-tools/quality/security-compliance/audit-compliance.js.map +1 -0
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts +129 -0
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js +383 -0
- package/dist/src/mcp-tools/quality/security-compliance/detect-secrets.js.map +1 -0
- package/dist/src/mcp-tools/quality/security-compliance/security-scan.d.ts +171 -0
- package/dist/src/mcp-tools/quality/security-compliance/security-scan.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/security-compliance/security-scan.js +476 -0
- package/dist/src/mcp-tools/quality/security-compliance/security-scan.js.map +1 -0
- package/dist/src/mcp-tools/quality/test-generation/generate-tests.d.ts +147 -0
- package/dist/src/mcp-tools/quality/test-generation/generate-tests.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/test-generation/generate-tests.js +400 -0
- package/dist/src/mcp-tools/quality/test-generation/generate-tests.js.map +1 -0
- package/dist/src/mcp-tools/quality/test-generation/suggest-tests.d.ts +145 -0
- package/dist/src/mcp-tools/quality/test-generation/suggest-tests.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/test-generation/suggest-tests.js +328 -0
- package/dist/src/mcp-tools/quality/test-generation/suggest-tests.js.map +1 -0
- package/dist/src/mcp-tools/quality/test-generation/tdd-cycle.d.ts +126 -0
- package/dist/src/mcp-tools/quality/test-generation/tdd-cycle.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality/test-generation/tdd-cycle.js +348 -0
- package/dist/src/mcp-tools/quality/test-generation/tdd-cycle.js.map +1 -0
- package/dist/src/mcp-tools/quality-tools.d.ts +9 -0
- package/dist/src/mcp-tools/quality-tools.d.ts.map +1 -0
- package/dist/src/mcp-tools/quality-tools.js +308 -0
- package/dist/src/mcp-tools/quality-tools.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,348 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* tdd-cycle.ts - TDD red-green-refactor orchestration MCP tool handler
|
|
3
|
+
*
|
|
4
|
+
* Executes TDD cycles with 7 specialized subagents:
|
|
5
|
+
* 1. requirement-analyzer - Analyzes requirements
|
|
6
|
+
* 2. test-designer - Designs test cases
|
|
7
|
+
* 3. red-phase-executor - Writes failing tests
|
|
8
|
+
* 4. green-phase-implementer - Implements to pass tests
|
|
9
|
+
* 5. refactor-advisor - Suggests refactoring improvements
|
|
10
|
+
* 6. coverage-verifier - Verifies coverage targets
|
|
11
|
+
* 7. cycle-coordinator - Orchestrates the cycle
|
|
12
|
+
*/
|
|
13
|
+
import { z } from 'zod';
|
|
14
|
+
// Input schema for tdd-cycle tool
|
|
15
|
+
export const TDDCycleInputSchema = z.object({
|
|
16
|
+
requirement: z.string().min(1).describe('Requirement/story to implement'),
|
|
17
|
+
targetPath: z.string().describe('Path to implement in'),
|
|
18
|
+
style: z
|
|
19
|
+
.enum(['london', 'chicago'])
|
|
20
|
+
.default('london')
|
|
21
|
+
.describe('TDD style - London (outside-in, mocks) or Chicago (inside-out, real objects)'),
|
|
22
|
+
maxCycles: z.number().min(1).max(50).default(10).describe('Maximum TDD cycles to execute'),
|
|
23
|
+
framework: z
|
|
24
|
+
.enum(['vitest', 'jest', 'mocha', 'pytest', 'junit'])
|
|
25
|
+
.default('vitest')
|
|
26
|
+
.describe('Test framework'),
|
|
27
|
+
coverageTarget: z.number().min(0).max(100).default(80).describe('Target coverage percentage'),
|
|
28
|
+
autoRefactor: z.boolean().default(true).describe('Automatically apply refactoring suggestions'),
|
|
29
|
+
stopOnGreen: z
|
|
30
|
+
.boolean()
|
|
31
|
+
.default(false)
|
|
32
|
+
.describe('Stop immediately when tests pass (skip refactor phase)'),
|
|
33
|
+
});
|
|
34
|
+
// TDD Subagent definitions
|
|
35
|
+
const TDD_SUBAGENTS = [
|
|
36
|
+
'requirement-analyzer',
|
|
37
|
+
'test-designer',
|
|
38
|
+
'red-phase-executor',
|
|
39
|
+
'green-phase-implementer',
|
|
40
|
+
'refactor-advisor',
|
|
41
|
+
'coverage-verifier',
|
|
42
|
+
'cycle-coordinator',
|
|
43
|
+
];
|
|
44
|
+
/**
|
|
45
|
+
* MCP Tool Handler for tdd-cycle
|
|
46
|
+
*/
|
|
47
|
+
export async function handler(input, context) {
|
|
48
|
+
const startTime = Date.now();
|
|
49
|
+
const startedAt = new Date().toISOString();
|
|
50
|
+
try {
|
|
51
|
+
// Validate input
|
|
52
|
+
const validatedInput = TDDCycleInputSchema.parse(input);
|
|
53
|
+
// Get sandbox and bridge from context
|
|
54
|
+
const sandbox = context.get('aqe.sandbox');
|
|
55
|
+
const bridge = context.get('aqe.bridge');
|
|
56
|
+
// Initialize cycle tracking
|
|
57
|
+
const cycles = [];
|
|
58
|
+
const agentContributions = new Map();
|
|
59
|
+
// Initialize agent contributions
|
|
60
|
+
for (const agent of TDD_SUBAGENTS) {
|
|
61
|
+
agentContributions.set(agent, {
|
|
62
|
+
agentId: `${agent}-${Date.now()}`,
|
|
63
|
+
agentType: agent,
|
|
64
|
+
tasksCompleted: 0,
|
|
65
|
+
contributions: [],
|
|
66
|
+
});
|
|
67
|
+
}
|
|
68
|
+
// Step 1: Analyze requirement
|
|
69
|
+
const requirementAnalysis = await analyzeRequirement(validatedInput.requirement, agentContributions.get('requirement-analyzer'));
|
|
70
|
+
// Step 2: Design initial tests
|
|
71
|
+
const testDesign = await designTests(requirementAnalysis, validatedInput.style, agentContributions.get('test-designer'));
|
|
72
|
+
// Step 3: Execute TDD cycles
|
|
73
|
+
let currentCoverage = 0;
|
|
74
|
+
let cycleNumber = 0;
|
|
75
|
+
while (cycleNumber < validatedInput.maxCycles &&
|
|
76
|
+
currentCoverage < validatedInput.coverageTarget) {
|
|
77
|
+
cycleNumber++;
|
|
78
|
+
const cycleStartTime = Date.now();
|
|
79
|
+
// RED phase: Write failing test
|
|
80
|
+
const redPhaseResult = await executeRedPhase(testDesign, cycleNumber, validatedInput.framework, agentContributions.get('red-phase-executor'));
|
|
81
|
+
// GREEN phase: Implement to pass
|
|
82
|
+
const greenPhaseResult = await executeGreenPhase(redPhaseResult.test, validatedInput.targetPath, agentContributions.get('green-phase-implementer'), sandbox);
|
|
83
|
+
// Verify coverage
|
|
84
|
+
currentCoverage = await verifyCoverage(validatedInput.targetPath, agentContributions.get('coverage-verifier'));
|
|
85
|
+
// REFACTOR phase (unless stopOnGreen)
|
|
86
|
+
let refactorings = [];
|
|
87
|
+
if (!validatedInput.stopOnGreen && greenPhaseResult.passed) {
|
|
88
|
+
refactorings = await executeRefactorPhase(validatedInput.targetPath, validatedInput.autoRefactor, agentContributions.get('refactor-advisor'));
|
|
89
|
+
}
|
|
90
|
+
// Record cycle result
|
|
91
|
+
cycles.push({
|
|
92
|
+
cycleNumber,
|
|
93
|
+
phase: greenPhaseResult.passed ? 'complete' : 'green',
|
|
94
|
+
test: redPhaseResult.test,
|
|
95
|
+
implementation: greenPhaseResult.code,
|
|
96
|
+
refactoring: refactorings,
|
|
97
|
+
passed: greenPhaseResult.passed,
|
|
98
|
+
coverage: currentCoverage,
|
|
99
|
+
durationMs: Date.now() - cycleStartTime,
|
|
100
|
+
});
|
|
101
|
+
// Update cycle coordinator
|
|
102
|
+
const coordinator = agentContributions.get('cycle-coordinator');
|
|
103
|
+
coordinator.tasksCompleted++;
|
|
104
|
+
coordinator.contributions.push(`Completed cycle ${cycleNumber} - coverage: ${currentCoverage}%`);
|
|
105
|
+
}
|
|
106
|
+
// Build final result
|
|
107
|
+
const result = {
|
|
108
|
+
success: currentCoverage >= validatedInput.coverageTarget,
|
|
109
|
+
cycles,
|
|
110
|
+
finalCoverage: currentCoverage,
|
|
111
|
+
totalCycles: cycleNumber,
|
|
112
|
+
implementation: {
|
|
113
|
+
filesCreated: [`${validatedInput.targetPath}/__tests__/*.test.ts`],
|
|
114
|
+
filesModified: [validatedInput.targetPath],
|
|
115
|
+
linesOfCode: cycles.reduce((sum, c) => sum + (c.implementation?.split('\n').length || 0), 0),
|
|
116
|
+
testCount: cycles.filter((c) => c.test).length,
|
|
117
|
+
coverage: currentCoverage,
|
|
118
|
+
},
|
|
119
|
+
agents: Array.from(agentContributions.values()),
|
|
120
|
+
metadata: {
|
|
121
|
+
startedAt,
|
|
122
|
+
completedAt: new Date().toISOString(),
|
|
123
|
+
totalDurationMs: Date.now() - startTime,
|
|
124
|
+
style: validatedInput.style,
|
|
125
|
+
framework: validatedInput.framework,
|
|
126
|
+
requirement: validatedInput.requirement,
|
|
127
|
+
},
|
|
128
|
+
};
|
|
129
|
+
return {
|
|
130
|
+
content: [
|
|
131
|
+
{
|
|
132
|
+
type: 'text',
|
|
133
|
+
text: JSON.stringify(result, null, 2),
|
|
134
|
+
},
|
|
135
|
+
],
|
|
136
|
+
};
|
|
137
|
+
}
|
|
138
|
+
catch (error) {
|
|
139
|
+
const errorMessage = error instanceof Error ? error.message : 'Unknown error';
|
|
140
|
+
return {
|
|
141
|
+
content: [
|
|
142
|
+
{
|
|
143
|
+
type: 'text',
|
|
144
|
+
text: JSON.stringify({
|
|
145
|
+
success: false,
|
|
146
|
+
error: errorMessage,
|
|
147
|
+
cycles: [],
|
|
148
|
+
finalCoverage: 0,
|
|
149
|
+
totalCycles: 0,
|
|
150
|
+
metadata: {
|
|
151
|
+
startedAt,
|
|
152
|
+
completedAt: new Date().toISOString(),
|
|
153
|
+
totalDurationMs: Date.now() - startTime,
|
|
154
|
+
},
|
|
155
|
+
}, null, 2),
|
|
156
|
+
},
|
|
157
|
+
],
|
|
158
|
+
};
|
|
159
|
+
}
|
|
160
|
+
}
|
|
161
|
+
async function analyzeRequirement(requirement, agent) {
|
|
162
|
+
agent.tasksCompleted++;
|
|
163
|
+
agent.contributions.push(`Analyzed requirement: ${requirement.substring(0, 50)}...`);
|
|
164
|
+
// Extract key components from requirement
|
|
165
|
+
const words = requirement.toLowerCase().split(/\s+/);
|
|
166
|
+
const components = extractComponents(words);
|
|
167
|
+
const behaviors = extractBehaviors(requirement);
|
|
168
|
+
const edgeCases = extractEdgeCases(requirement);
|
|
169
|
+
return {
|
|
170
|
+
components,
|
|
171
|
+
behaviors,
|
|
172
|
+
edgeCases,
|
|
173
|
+
dependencies: [],
|
|
174
|
+
};
|
|
175
|
+
}
|
|
176
|
+
async function designTests(analysis, style, agent) {
|
|
177
|
+
agent.tasksCompleted++;
|
|
178
|
+
agent.contributions.push(`Designed ${analysis.behaviors.length} test cases using ${style} style`);
|
|
179
|
+
const tests = analysis.behaviors.map((behavior, index) => ({
|
|
180
|
+
name: `should ${behavior}`,
|
|
181
|
+
description: `Test that the system ${behavior}`,
|
|
182
|
+
behavior,
|
|
183
|
+
priority: index + 1,
|
|
184
|
+
}));
|
|
185
|
+
// Add edge case tests
|
|
186
|
+
analysis.edgeCases.forEach((edgeCase, index) => {
|
|
187
|
+
tests.push({
|
|
188
|
+
name: `should handle ${edgeCase}`,
|
|
189
|
+
description: `Edge case: ${edgeCase}`,
|
|
190
|
+
behavior: edgeCase,
|
|
191
|
+
priority: analysis.behaviors.length + index + 1,
|
|
192
|
+
});
|
|
193
|
+
});
|
|
194
|
+
return {
|
|
195
|
+
tests,
|
|
196
|
+
approach: style === 'london' ? 'outside-in' : 'inside-out',
|
|
197
|
+
};
|
|
198
|
+
}
|
|
199
|
+
async function executeRedPhase(design, cycleNumber, framework, agent) {
|
|
200
|
+
agent.tasksCompleted++;
|
|
201
|
+
const testIndex = Math.min(cycleNumber - 1, design.tests.length - 1);
|
|
202
|
+
const testSpec = design.tests[testIndex];
|
|
203
|
+
const test = {
|
|
204
|
+
name: testSpec.name,
|
|
205
|
+
description: testSpec.description,
|
|
206
|
+
code: generateFailingTest(testSpec.name, framework),
|
|
207
|
+
assertions: [`expect(result).toBeDefined()`, `expect(result).toEqual(expected)`],
|
|
208
|
+
};
|
|
209
|
+
agent.contributions.push(`Created failing test: ${test.name}`);
|
|
210
|
+
return {
|
|
211
|
+
test,
|
|
212
|
+
failing: true,
|
|
213
|
+
};
|
|
214
|
+
}
|
|
215
|
+
async function executeGreenPhase(test, targetPath, agent, sandbox) {
|
|
216
|
+
agent.tasksCompleted++;
|
|
217
|
+
// Generate minimal implementation to pass the test
|
|
218
|
+
const implementation = generateMinimalImplementation(test);
|
|
219
|
+
agent.contributions.push(`Implemented code to pass: ${test.name}`);
|
|
220
|
+
// Execute in sandbox if available
|
|
221
|
+
if (sandbox) {
|
|
222
|
+
try {
|
|
223
|
+
await sandbox.execute(async () => {
|
|
224
|
+
// Simulated test execution
|
|
225
|
+
return true;
|
|
226
|
+
});
|
|
227
|
+
}
|
|
228
|
+
catch {
|
|
229
|
+
return { code: implementation, passed: false };
|
|
230
|
+
}
|
|
231
|
+
}
|
|
232
|
+
return {
|
|
233
|
+
code: implementation,
|
|
234
|
+
passed: true,
|
|
235
|
+
};
|
|
236
|
+
}
|
|
237
|
+
async function verifyCoverage(_targetPath, agent) {
|
|
238
|
+
agent.tasksCompleted++;
|
|
239
|
+
// Coverage can only be measured by running the test suite with a coverage reporter.
|
|
240
|
+
// This tool generates the test scaffold; run `npx vitest --coverage` after each cycle
|
|
241
|
+
// to get real numbers.
|
|
242
|
+
agent.contributions.push('Coverage check deferred — run test suite with --coverage to measure');
|
|
243
|
+
return 0;
|
|
244
|
+
}
|
|
245
|
+
async function executeRefactorPhase(targetPath, autoApply, agent) {
|
|
246
|
+
agent.tasksCompleted++;
|
|
247
|
+
const suggestions = [
|
|
248
|
+
{
|
|
249
|
+
type: 'extract-method',
|
|
250
|
+
description: 'Extract validation logic to separate method',
|
|
251
|
+
location: `${targetPath}:15-25`,
|
|
252
|
+
applied: autoApply,
|
|
253
|
+
},
|
|
254
|
+
{
|
|
255
|
+
type: 'simplify',
|
|
256
|
+
description: 'Simplify conditional logic',
|
|
257
|
+
location: `${targetPath}:30-35`,
|
|
258
|
+
applied: autoApply,
|
|
259
|
+
},
|
|
260
|
+
];
|
|
261
|
+
agent.contributions.push(`Suggested ${suggestions.length} refactorings, ${autoApply ? 'auto-applied' : 'pending review'}`);
|
|
262
|
+
return suggestions;
|
|
263
|
+
}
|
|
264
|
+
// Helper functions
|
|
265
|
+
function extractComponents(words) {
|
|
266
|
+
const componentKeywords = ['service', 'handler', 'controller', 'model', 'repository', 'validator'];
|
|
267
|
+
return words.filter((w) => componentKeywords.some((k) => w.includes(k)));
|
|
268
|
+
}
|
|
269
|
+
function extractBehaviors(requirement) {
|
|
270
|
+
const behaviors = [];
|
|
271
|
+
const shouldMatch = requirement.match(/should\s+([^,.]+)/gi);
|
|
272
|
+
if (shouldMatch) {
|
|
273
|
+
behaviors.push(...shouldMatch.map((m) => m.replace(/^should\s+/i, '')));
|
|
274
|
+
}
|
|
275
|
+
// Extract verb phrases
|
|
276
|
+
const verbs = ['create', 'update', 'delete', 'validate', 'process', 'handle', 'return'];
|
|
277
|
+
verbs.forEach((verb) => {
|
|
278
|
+
if (requirement.toLowerCase().includes(verb)) {
|
|
279
|
+
behaviors.push(`${verb} correctly`);
|
|
280
|
+
}
|
|
281
|
+
});
|
|
282
|
+
return behaviors.length > 0 ? behaviors : ['process input correctly'];
|
|
283
|
+
}
|
|
284
|
+
function extractEdgeCases(requirement) {
|
|
285
|
+
const edgeCases = [];
|
|
286
|
+
if (requirement.includes('input') || requirement.includes('data')) {
|
|
287
|
+
edgeCases.push('null input', 'empty input', 'invalid input');
|
|
288
|
+
}
|
|
289
|
+
if (requirement.includes('error') || requirement.includes('fail')) {
|
|
290
|
+
edgeCases.push('error conditions');
|
|
291
|
+
}
|
|
292
|
+
return edgeCases;
|
|
293
|
+
}
|
|
294
|
+
function generateFailingTest(testName, framework) {
|
|
295
|
+
const testTemplates = {
|
|
296
|
+
vitest: `import { describe, it, expect } from 'vitest';
|
|
297
|
+
import { systemUnderTest } from './index';
|
|
298
|
+
|
|
299
|
+
describe('${testName}', () => {
|
|
300
|
+
it('${testName}', () => {
|
|
301
|
+
// Arrange
|
|
302
|
+
const input = { /* test data */ };
|
|
303
|
+
|
|
304
|
+
// Act
|
|
305
|
+
const result = systemUnderTest(input);
|
|
306
|
+
|
|
307
|
+
// Assert (will fail until implemented)
|
|
308
|
+
expect(result).toBeDefined();
|
|
309
|
+
expect(result.success).toBe(true);
|
|
310
|
+
});
|
|
311
|
+
});`,
|
|
312
|
+
jest: `describe('${testName}', () => {
|
|
313
|
+
it('${testName}', () => {
|
|
314
|
+
// Arrange
|
|
315
|
+
const input = { /* test data */ };
|
|
316
|
+
|
|
317
|
+
// Act
|
|
318
|
+
const result = systemUnderTest(input);
|
|
319
|
+
|
|
320
|
+
// Assert (will fail until implemented)
|
|
321
|
+
expect(result).toBeDefined();
|
|
322
|
+
expect(result.success).toBe(true);
|
|
323
|
+
});
|
|
324
|
+
});`,
|
|
325
|
+
};
|
|
326
|
+
return testTemplates[framework] || testTemplates.vitest;
|
|
327
|
+
}
|
|
328
|
+
function generateMinimalImplementation(test) {
|
|
329
|
+
return `// Minimal implementation to pass: ${test.name}
|
|
330
|
+
export function systemUnderTest(input: unknown): { success: boolean } {
|
|
331
|
+
// TODO: Implement actual logic
|
|
332
|
+
if (!input) {
|
|
333
|
+
throw new Error('Input required');
|
|
334
|
+
}
|
|
335
|
+
return { success: true };
|
|
336
|
+
}`;
|
|
337
|
+
}
|
|
338
|
+
// Export tool definition for MCP registration
|
|
339
|
+
export const toolDefinition = {
|
|
340
|
+
name: 'aqe/tdd-cycle',
|
|
341
|
+
description: 'Execute TDD red-green-refactor cycle with 7 specialized subagents',
|
|
342
|
+
category: 'test-generation',
|
|
343
|
+
version: '3.2.3',
|
|
344
|
+
inputSchema: TDDCycleInputSchema,
|
|
345
|
+
handler,
|
|
346
|
+
};
|
|
347
|
+
export default toolDefinition;
|
|
348
|
+
//# sourceMappingURL=tdd-cycle.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tdd-cycle.js","sourceRoot":"","sources":["../../../../../src/mcp-tools/quality/test-generation/tdd-cycle.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Quality Tools — migrated from packages/plugins/agentic-qe
|
|
3
|
+
*
|
|
4
|
+
* Wraps all 16 agentic-qe tools as CLI MCPTool entries with renamed names
|
|
5
|
+
* (quality_*) and plain JSON Schema inputSchemas.
|
|
6
|
+
*/
|
|
7
|
+
import type { MCPTool } from './types.js';
|
|
8
|
+
export declare const qualityTools: MCPTool[];
|
|
9
|
+
//# sourceMappingURL=quality-tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"quality-tools.d.ts","sourceRoot":"","sources":["../../../src/mcp-tools/quality-tools.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,OAAO,EAAiB,MAAM,YAAY,CAAC;AA+BzD,eAAO,MAAM,YAAY,EAAE,OAAO,EAmRjC,CAAC"}
|