agentic-qe 2.1.0 → 2.1.2
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/CHANGELOG.md +128 -0
- package/README.md +37 -11
- package/dist/agents/QXPartnerAgent.d.ts +40 -1
- package/dist/agents/QXPartnerAgent.d.ts.map +1 -1
- package/dist/agents/QXPartnerAgent.js +918 -19
- package/dist/agents/QXPartnerAgent.js.map +1 -1
- package/dist/core/MemoryManager.d.ts.map +1 -1
- package/dist/core/MemoryManager.js +4 -0
- package/dist/core/MemoryManager.js.map +1 -1
- package/dist/core/memory/ReflexionMemoryAdapter.d.ts +109 -0
- package/dist/core/memory/ReflexionMemoryAdapter.d.ts.map +1 -0
- package/dist/core/memory/ReflexionMemoryAdapter.js +306 -0
- package/dist/core/memory/ReflexionMemoryAdapter.js.map +1 -0
- package/dist/core/memory/RuVectorPatternStore.d.ts +33 -1
- package/dist/core/memory/RuVectorPatternStore.d.ts.map +1 -1
- package/dist/core/memory/RuVectorPatternStore.js +113 -1
- package/dist/core/memory/RuVectorPatternStore.js.map +1 -1
- package/dist/core/memory/SparseVectorSearch.d.ts +55 -0
- package/dist/core/memory/SparseVectorSearch.d.ts.map +1 -0
- package/dist/core/memory/SparseVectorSearch.js +130 -0
- package/dist/core/memory/SparseVectorSearch.js.map +1 -0
- package/dist/core/memory/TieredCompression.d.ts +81 -0
- package/dist/core/memory/TieredCompression.d.ts.map +1 -0
- package/dist/core/memory/TieredCompression.js +270 -0
- package/dist/core/memory/TieredCompression.js.map +1 -0
- package/dist/core/memory/index.d.ts +6 -0
- package/dist/core/memory/index.d.ts.map +1 -1
- package/dist/core/memory/index.js +29 -1
- package/dist/core/memory/index.js.map +1 -1
- package/dist/mcp/handlers/advanced/index.d.ts +3 -2
- package/dist/mcp/handlers/advanced/index.d.ts.map +1 -1
- package/dist/mcp/handlers/advanced/index.js +4 -5
- package/dist/mcp/handlers/advanced/index.js.map +1 -1
- package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.d.ts +1 -0
- package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.d.ts.map +1 -1
- package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js +3 -0
- package/dist/mcp/handlers/analysis/coverageAnalyzeSublinear.js.map +1 -1
- package/dist/mcp/handlers/analysis/coverageGapsDetect.d.ts +1 -0
- package/dist/mcp/handlers/analysis/coverageGapsDetect.d.ts.map +1 -1
- package/dist/mcp/handlers/analysis/coverageGapsDetect.js +3 -0
- package/dist/mcp/handlers/analysis/coverageGapsDetect.js.map +1 -1
- package/dist/mcp/handlers/analysis/index.d.ts +0 -2
- package/dist/mcp/handlers/analysis/index.d.ts.map +1 -1
- package/dist/mcp/handlers/analysis/index.js +2 -3
- package/dist/mcp/handlers/analysis/index.js.map +1 -1
- package/dist/mcp/handlers/analysis/performanceMonitorRealtime.d.ts +1 -0
- package/dist/mcp/handlers/analysis/performanceMonitorRealtime.d.ts.map +1 -1
- package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js +3 -0
- package/dist/mcp/handlers/analysis/performanceMonitorRealtime.js.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-failure.d.ts +5 -0
- package/dist/mcp/handlers/chaos/chaos-inject-failure.d.ts.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-failure.js +36 -2
- package/dist/mcp/handlers/chaos/chaos-inject-failure.js.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-latency.d.ts +5 -0
- package/dist/mcp/handlers/chaos/chaos-inject-latency.d.ts.map +1 -1
- package/dist/mcp/handlers/chaos/chaos-inject-latency.js +36 -2
- package/dist/mcp/handlers/chaos/chaos-inject-latency.js.map +1 -1
- package/dist/mcp/handlers/prediction/flaky-test-detect.d.ts.map +1 -1
- package/dist/mcp/handlers/prediction/flaky-test-detect.js +2 -0
- package/dist/mcp/handlers/prediction/flaky-test-detect.js.map +1 -1
- package/dist/mcp/handlers/prediction/index.d.ts +0 -2
- package/dist/mcp/handlers/prediction/index.d.ts.map +1 -1
- package/dist/mcp/handlers/prediction/index.js +2 -3
- package/dist/mcp/handlers/prediction/index.js.map +1 -1
- package/dist/mcp/handlers/security/index.d.ts +0 -30
- package/dist/mcp/handlers/security/index.d.ts.map +1 -1
- package/dist/mcp/handlers/security/index.js +5 -31
- package/dist/mcp/handlers/security/index.js.map +1 -1
- package/dist/mcp/lazy-loader.d.ts +156 -0
- package/dist/mcp/lazy-loader.d.ts.map +1 -0
- package/dist/mcp/lazy-loader.js +327 -0
- package/dist/mcp/lazy-loader.js.map +1 -0
- package/dist/mcp/server-instructions.d.ts +18 -0
- package/dist/mcp/server-instructions.d.ts.map +1 -0
- package/dist/mcp/server-instructions.js +133 -0
- package/dist/mcp/server-instructions.js.map +1 -0
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +236 -49
- package/dist/mcp/server.js.map +1 -1
- package/dist/mcp/tool-categories.d.ts +105 -0
- package/dist/mcp/tool-categories.d.ts.map +1 -0
- package/dist/mcp/tool-categories.js +463 -0
- package/dist/mcp/tool-categories.js.map +1 -0
- package/dist/mcp/tools.d.ts +3 -19
- package/dist/mcp/tools.d.ts.map +1 -1
- package/dist/mcp/tools.js +260 -647
- package/dist/mcp/tools.js.map +1 -1
- package/dist/types/qx.d.ts +74 -0
- package/dist/types/qx.d.ts.map +1 -1
- package/dist/types/qx.js.map +1 -1
- package/dist/utils/IntervalRegistry.d.ts +110 -0
- package/dist/utils/IntervalRegistry.d.ts.map +1 -0
- package/dist/utils/IntervalRegistry.js +190 -0
- package/dist/utils/IntervalRegistry.js.map +1 -0
- package/dist/utils/index.d.ts +1 -0
- package/dist/utils/index.d.ts.map +1 -1
- package/dist/utils/index.js +5 -1
- package/dist/utils/index.js.map +1 -1
- package/docs/reference/agents.md +33 -0
- package/docs/reference/usage.md +60 -0
- package/package.json +5 -2
|
@@ -0,0 +1,327 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Lazy Tool Loader for Hierarchical MCP Tools
|
|
4
|
+
* Phase 2 Implementation - Issue #115
|
|
5
|
+
*
|
|
6
|
+
* Manages dynamic loading of tool domains to reduce context consumption.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.LazyToolLoader = void 0;
|
|
10
|
+
exports.getToolLoader = getToolLoader;
|
|
11
|
+
exports.resetToolLoader = resetToolLoader;
|
|
12
|
+
const tool_categories_js_1 = require("./tool-categories.js");
|
|
13
|
+
const tools_js_1 = require("./tools.js");
|
|
14
|
+
class LazyToolLoader {
|
|
15
|
+
constructor(enableUsageTracking = true) {
|
|
16
|
+
this.state = {
|
|
17
|
+
loadedDomains: new Set(),
|
|
18
|
+
coreLoaded: false,
|
|
19
|
+
totalToolsLoaded: 0,
|
|
20
|
+
};
|
|
21
|
+
this.toolCache = new Map();
|
|
22
|
+
this.toolUsageCount = new Map();
|
|
23
|
+
this.toolLastUsed = new Map();
|
|
24
|
+
this.domainUsageCount = new Map();
|
|
25
|
+
this.domainLastLoaded = new Map();
|
|
26
|
+
this.domainToolUsageCount = new Map();
|
|
27
|
+
this.usageTrackingEnabled = enableUsageTracking;
|
|
28
|
+
this.indexTools();
|
|
29
|
+
}
|
|
30
|
+
/**
|
|
31
|
+
* Index all tools for quick lookup
|
|
32
|
+
*/
|
|
33
|
+
indexTools() {
|
|
34
|
+
for (const tool of tools_js_1.agenticQETools) {
|
|
35
|
+
this.toolCache.set(tool.name, tool);
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
/**
|
|
39
|
+
* Get core tools (always loaded)
|
|
40
|
+
*/
|
|
41
|
+
getCoreTools() {
|
|
42
|
+
this.state.coreLoaded = true;
|
|
43
|
+
return tool_categories_js_1.CORE_TOOLS
|
|
44
|
+
.map(name => this.toolCache.get(name))
|
|
45
|
+
.filter((tool) => tool !== undefined);
|
|
46
|
+
}
|
|
47
|
+
/**
|
|
48
|
+
* Load a specific domain's tools
|
|
49
|
+
*/
|
|
50
|
+
loadDomain(domain) {
|
|
51
|
+
// Track domain usage
|
|
52
|
+
if (this.usageTrackingEnabled) {
|
|
53
|
+
const currentCount = this.domainUsageCount.get(domain) || 0;
|
|
54
|
+
this.domainUsageCount.set(domain, currentCount + 1);
|
|
55
|
+
this.domainLastLoaded.set(domain, Date.now());
|
|
56
|
+
}
|
|
57
|
+
// Check if already loaded
|
|
58
|
+
if (this.state.loadedDomains.has(domain)) {
|
|
59
|
+
return {
|
|
60
|
+
success: true,
|
|
61
|
+
domain,
|
|
62
|
+
toolsLoaded: [],
|
|
63
|
+
alreadyLoaded: true,
|
|
64
|
+
};
|
|
65
|
+
}
|
|
66
|
+
// Get tools for domain
|
|
67
|
+
const toolNames = domain in tool_categories_js_1.DOMAIN_TOOLS
|
|
68
|
+
? tool_categories_js_1.DOMAIN_TOOLS[domain]
|
|
69
|
+
: tool_categories_js_1.SPECIALIZED_TOOLS[domain] || [];
|
|
70
|
+
const loadedTools = toolNames.filter(name => this.toolCache.has(name));
|
|
71
|
+
this.state.loadedDomains.add(domain);
|
|
72
|
+
this.state.totalToolsLoaded += loadedTools.length;
|
|
73
|
+
return {
|
|
74
|
+
success: true,
|
|
75
|
+
domain,
|
|
76
|
+
toolsLoaded: loadedTools,
|
|
77
|
+
alreadyLoaded: false,
|
|
78
|
+
};
|
|
79
|
+
}
|
|
80
|
+
/**
|
|
81
|
+
* Get tools for a loaded domain
|
|
82
|
+
*/
|
|
83
|
+
getToolsForDomain(domain) {
|
|
84
|
+
const toolNames = domain in tool_categories_js_1.DOMAIN_TOOLS
|
|
85
|
+
? tool_categories_js_1.DOMAIN_TOOLS[domain]
|
|
86
|
+
: tool_categories_js_1.SPECIALIZED_TOOLS[domain] || [];
|
|
87
|
+
return toolNames
|
|
88
|
+
.map(name => this.toolCache.get(name))
|
|
89
|
+
.filter((tool) => tool !== undefined);
|
|
90
|
+
}
|
|
91
|
+
/**
|
|
92
|
+
* Auto-detect and load domains based on message content
|
|
93
|
+
*/
|
|
94
|
+
autoLoadFromMessage(message) {
|
|
95
|
+
const domains = (0, tool_categories_js_1.detectDomainsFromMessage)(message);
|
|
96
|
+
return domains.map(domain => this.loadDomain(domain));
|
|
97
|
+
}
|
|
98
|
+
/**
|
|
99
|
+
* Get all currently loaded tools
|
|
100
|
+
*/
|
|
101
|
+
getLoadedTools() {
|
|
102
|
+
const tools = [];
|
|
103
|
+
// Always include core
|
|
104
|
+
tools.push(...this.getCoreTools());
|
|
105
|
+
// Add loaded domains
|
|
106
|
+
for (const domain of this.state.loadedDomains) {
|
|
107
|
+
tools.push(...this.getToolsForDomain(domain));
|
|
108
|
+
}
|
|
109
|
+
return tools;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Get current loader state
|
|
113
|
+
*/
|
|
114
|
+
getState() {
|
|
115
|
+
return { ...this.state, loadedDomains: new Set(this.state.loadedDomains) };
|
|
116
|
+
}
|
|
117
|
+
/**
|
|
118
|
+
* Check if a domain is loaded
|
|
119
|
+
*/
|
|
120
|
+
isDomainLoaded(domain) {
|
|
121
|
+
return this.state.loadedDomains.has(domain);
|
|
122
|
+
}
|
|
123
|
+
/**
|
|
124
|
+
* Get available domains that haven't been loaded
|
|
125
|
+
*/
|
|
126
|
+
getAvailableDomains() {
|
|
127
|
+
const allDomains = [
|
|
128
|
+
...Object.keys(tool_categories_js_1.DOMAIN_TOOLS),
|
|
129
|
+
...Object.keys(tool_categories_js_1.SPECIALIZED_TOOLS),
|
|
130
|
+
];
|
|
131
|
+
return allDomains.filter(d => !this.state.loadedDomains.has(d));
|
|
132
|
+
}
|
|
133
|
+
/**
|
|
134
|
+
* Get statistics about tool loading
|
|
135
|
+
*/
|
|
136
|
+
getStats() {
|
|
137
|
+
const availableDomains = this.getAvailableDomains();
|
|
138
|
+
return {
|
|
139
|
+
coreTools: tool_categories_js_1.CORE_TOOLS.length,
|
|
140
|
+
loadedDomains: Array.from(this.state.loadedDomains),
|
|
141
|
+
availableDomains,
|
|
142
|
+
totalLoaded: this.state.totalToolsLoaded + tool_categories_js_1.CORE_TOOLS.length,
|
|
143
|
+
totalAvailable: this.toolCache.size,
|
|
144
|
+
};
|
|
145
|
+
}
|
|
146
|
+
/**
|
|
147
|
+
* Reset loader state (useful for testing)
|
|
148
|
+
*/
|
|
149
|
+
reset() {
|
|
150
|
+
this.state = {
|
|
151
|
+
loadedDomains: new Set(),
|
|
152
|
+
coreLoaded: false,
|
|
153
|
+
totalToolsLoaded: 0,
|
|
154
|
+
};
|
|
155
|
+
}
|
|
156
|
+
/**
|
|
157
|
+
* Preload commonly used domain combinations
|
|
158
|
+
*/
|
|
159
|
+
preloadCommonDomains() {
|
|
160
|
+
// Testing workflows often need coverage and quality
|
|
161
|
+
this.loadDomain('coverage');
|
|
162
|
+
this.loadDomain('quality');
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Track tool usage when a tool is called
|
|
166
|
+
*/
|
|
167
|
+
trackToolUsage(toolName) {
|
|
168
|
+
if (!this.usageTrackingEnabled)
|
|
169
|
+
return;
|
|
170
|
+
const currentCount = this.toolUsageCount.get(toolName) || 0;
|
|
171
|
+
this.toolUsageCount.set(toolName, currentCount + 1);
|
|
172
|
+
this.toolLastUsed.set(toolName, Date.now());
|
|
173
|
+
// Find the domain for this tool and track domain-level usage
|
|
174
|
+
const domain = this.findDomainForTool(toolName);
|
|
175
|
+
if (domain) {
|
|
176
|
+
const currentDomainToolCount = this.domainToolUsageCount.get(domain) || 0;
|
|
177
|
+
this.domainToolUsageCount.set(domain, currentDomainToolCount + 1);
|
|
178
|
+
}
|
|
179
|
+
}
|
|
180
|
+
/**
|
|
181
|
+
* Find which domain a tool belongs to
|
|
182
|
+
*/
|
|
183
|
+
findDomainForTool(toolName) {
|
|
184
|
+
// Check domain tools
|
|
185
|
+
for (const [domain, tools] of Object.entries(tool_categories_js_1.DOMAIN_TOOLS)) {
|
|
186
|
+
if (tools.includes(toolName)) {
|
|
187
|
+
return domain;
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
// Check specialized tools
|
|
191
|
+
for (const [domain, tools] of Object.entries(tool_categories_js_1.SPECIALIZED_TOOLS)) {
|
|
192
|
+
if (tools.includes(toolName)) {
|
|
193
|
+
return domain;
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
// Check core tools
|
|
197
|
+
if (tool_categories_js_1.CORE_TOOLS.includes(toolName)) {
|
|
198
|
+
return 'core';
|
|
199
|
+
}
|
|
200
|
+
return undefined;
|
|
201
|
+
}
|
|
202
|
+
/**
|
|
203
|
+
* Get usage statistics for all tools
|
|
204
|
+
*/
|
|
205
|
+
getToolUsageStats() {
|
|
206
|
+
const stats = [];
|
|
207
|
+
for (const [toolName, callCount] of this.toolUsageCount.entries()) {
|
|
208
|
+
stats.push({
|
|
209
|
+
toolName,
|
|
210
|
+
callCount,
|
|
211
|
+
lastUsed: this.toolLastUsed.get(toolName) || 0,
|
|
212
|
+
domain: this.findDomainForTool(toolName),
|
|
213
|
+
});
|
|
214
|
+
}
|
|
215
|
+
// Sort by call count descending
|
|
216
|
+
return stats.sort((a, b) => b.callCount - a.callCount);
|
|
217
|
+
}
|
|
218
|
+
/**
|
|
219
|
+
* Get usage statistics for domains
|
|
220
|
+
*/
|
|
221
|
+
getDomainUsageStats() {
|
|
222
|
+
const stats = [];
|
|
223
|
+
for (const [domain, loadCount] of this.domainUsageCount.entries()) {
|
|
224
|
+
const toolUsageCount = this.domainToolUsageCount.get(domain) || 0;
|
|
225
|
+
stats.push({
|
|
226
|
+
domain,
|
|
227
|
+
loadCount,
|
|
228
|
+
toolUsageCount,
|
|
229
|
+
lastLoaded: this.domainLastLoaded.get(domain) || 0,
|
|
230
|
+
averageToolsPerLoad: toolUsageCount / Math.max(loadCount, 1),
|
|
231
|
+
});
|
|
232
|
+
}
|
|
233
|
+
// Sort by tool usage count descending
|
|
234
|
+
return stats.sort((a, b) => b.toolUsageCount - a.toolUsageCount);
|
|
235
|
+
}
|
|
236
|
+
/**
|
|
237
|
+
* Get top N most frequently used tools
|
|
238
|
+
*/
|
|
239
|
+
getTopTools(limit = 10) {
|
|
240
|
+
return this.getToolUsageStats().slice(0, limit);
|
|
241
|
+
}
|
|
242
|
+
/**
|
|
243
|
+
* Get top N most frequently used domains
|
|
244
|
+
*/
|
|
245
|
+
getTopDomains(limit = 5) {
|
|
246
|
+
return this.getDomainUsageStats().slice(0, limit);
|
|
247
|
+
}
|
|
248
|
+
/**
|
|
249
|
+
* Preload domains based on usage frequency
|
|
250
|
+
* Loads the most frequently used domains that aren't already loaded
|
|
251
|
+
*/
|
|
252
|
+
preloadFrequentDomains(threshold = 5) {
|
|
253
|
+
const results = [];
|
|
254
|
+
const domainStats = this.getDomainUsageStats();
|
|
255
|
+
for (const stat of domainStats) {
|
|
256
|
+
// Skip if already loaded or below threshold
|
|
257
|
+
if (this.state.loadedDomains.has(stat.domain) || stat.toolUsageCount < threshold) {
|
|
258
|
+
continue;
|
|
259
|
+
}
|
|
260
|
+
// Load the domain
|
|
261
|
+
const result = this.loadDomain(stat.domain);
|
|
262
|
+
results.push(result);
|
|
263
|
+
}
|
|
264
|
+
return results;
|
|
265
|
+
}
|
|
266
|
+
/**
|
|
267
|
+
* Export usage statistics as JSON
|
|
268
|
+
*/
|
|
269
|
+
exportUsageStats() {
|
|
270
|
+
return {
|
|
271
|
+
toolStats: this.getToolUsageStats(),
|
|
272
|
+
domainStats: this.getDomainUsageStats(),
|
|
273
|
+
exportedAt: Date.now(),
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Import usage statistics from JSON
|
|
278
|
+
*/
|
|
279
|
+
importUsageStats(data) {
|
|
280
|
+
// Import tool stats
|
|
281
|
+
for (const stat of data.toolStats) {
|
|
282
|
+
this.toolUsageCount.set(stat.toolName, stat.callCount);
|
|
283
|
+
this.toolLastUsed.set(stat.toolName, stat.lastUsed);
|
|
284
|
+
}
|
|
285
|
+
// Import domain stats
|
|
286
|
+
for (const stat of data.domainStats) {
|
|
287
|
+
this.domainUsageCount.set(stat.domain, stat.loadCount);
|
|
288
|
+
this.domainToolUsageCount.set(stat.domain, stat.toolUsageCount);
|
|
289
|
+
this.domainLastLoaded.set(stat.domain, stat.lastLoaded);
|
|
290
|
+
}
|
|
291
|
+
}
|
|
292
|
+
/**
|
|
293
|
+
* Clear all usage statistics
|
|
294
|
+
*/
|
|
295
|
+
clearUsageStats() {
|
|
296
|
+
this.toolUsageCount.clear();
|
|
297
|
+
this.toolLastUsed.clear();
|
|
298
|
+
this.domainUsageCount.clear();
|
|
299
|
+
this.domainLastLoaded.clear();
|
|
300
|
+
this.domainToolUsageCount.clear();
|
|
301
|
+
}
|
|
302
|
+
/**
|
|
303
|
+
* Enable or disable usage tracking
|
|
304
|
+
*/
|
|
305
|
+
setUsageTracking(enabled) {
|
|
306
|
+
this.usageTrackingEnabled = enabled;
|
|
307
|
+
}
|
|
308
|
+
/**
|
|
309
|
+
* Check if usage tracking is enabled
|
|
310
|
+
*/
|
|
311
|
+
isUsageTrackingEnabled() {
|
|
312
|
+
return this.usageTrackingEnabled;
|
|
313
|
+
}
|
|
314
|
+
}
|
|
315
|
+
exports.LazyToolLoader = LazyToolLoader;
|
|
316
|
+
// Singleton instance for use across the application
|
|
317
|
+
let loaderInstance = null;
|
|
318
|
+
function getToolLoader() {
|
|
319
|
+
if (!loaderInstance) {
|
|
320
|
+
loaderInstance = new LazyToolLoader();
|
|
321
|
+
}
|
|
322
|
+
return loaderInstance;
|
|
323
|
+
}
|
|
324
|
+
function resetToolLoader() {
|
|
325
|
+
loaderInstance = null;
|
|
326
|
+
}
|
|
327
|
+
//# sourceMappingURL=lazy-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-loader.js","sourceRoot":"","sources":["../../src/mcp/lazy-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Server Instructions for Agentic QE MCP Server
|
|
3
|
+
* Phase 2 Implementation - Issue #115
|
|
4
|
+
*
|
|
5
|
+
* These instructions are shown to Claude once per session to guide tool usage.
|
|
6
|
+
*/
|
|
7
|
+
export declare const SERVER_INSTRUCTIONS = "\n# Agentic QE Fleet - MCP Tool Guide\n\n## Overview\nAgentic QE provides 96 specialized quality engineering tools organized into a hierarchical system for efficient context usage.\n\n## Quick Start\n1. **Discover available tools:** Use `tools_discover` to see all domains\n2. **Load domain tools:** Use `tools_load_domain` to load specialized tools\n3. **Auto-loading:** Domain tools auto-load when relevant keywords are detected\n\n---\n\n## Core Tools (Always Available - 14 tools)\n\n### Fleet Management\n- `fleet_init` - Initialize QE fleet with topology\n- `agent_spawn` - Spawn specialized QE agent\n- `fleet_status` - Get fleet and agent status\n\n### Testing\n- `test_generate_enhanced` - AI test generation with pattern recognition\n- `test_execute_parallel` - Parallel test execution with retry\n- `test_report_comprehensive` - Multi-format test reports\n\n### Memory & Coordination\n- `memory_store` - Store data with TTL & namespacing\n- `memory_retrieve` - Retrieve stored data\n- `memory_query` - Pattern-based memory search\n\n### Quality & Orchestration\n- `quality_analyze` - Analyze quality metrics\n- `task_orchestrate` - Orchestrate tasks across agents\n- `task_status` - Check task progress\n\n### Discovery\n- `tools_discover` - List available tool domains\n- `tools_load_domain` - Load tools for a domain\n\n---\n\n## Domain Tools (Load as Needed)\n\n| Domain | Keywords | Tools | Use Case |\n|--------|----------|-------|----------|\n| **Security** | security, vulnerability, audit, owasp | 4 tools | Security scanning, vulnerability detection |\n| **Performance** | benchmark, bottleneck, profiling | 4 tools | Performance testing, bottleneck analysis |\n| **Coverage** | coverage, gap, uncovered | 5 tools | Coverage analysis, gap detection |\n| **Quality** | quality gate, deploy, release | 6 tools | Quality gates, deployment readiness |\n| **Flaky** | flaky, unstable, retry | 3 tools | Flaky test detection and stabilization |\n| **Visual** | screenshot, accessibility, wcag | 3 tools | Visual regression, accessibility testing |\n| **Requirements** | bdd, gherkin, acceptance | 2 tools | Requirements validation, BDD generation |\n\n### Loading Domain Tools\n```\n# Explicit load\ntools_load_domain({ domain: 'security' })\n\n# Auto-load: Just mention keywords in your request\n\"I need to run a security scan\" \u2192 Security tools auto-load\n```\n\n---\n\n## Specialized Tools (Expert Use)\n\n### Learning Domain (4 tools)\nFor persistent learning and pattern storage across sessions.\nLoad with: `tools_load_domain({ domain: 'learning' })`\n\n### Advanced Domain (7 tools)\nFor mutation testing, API contract validation, production incident replay.\nLoad with: `tools_load_domain({ domain: 'advanced' })`\n\n---\n\n## Best Practices\n\n1. **Start with core tools** - They handle 80% of use cases\n2. **Let auto-load work** - Mention keywords naturally\n3. **Use tools_discover** - When unsure what's available\n4. **Batch operations** - Use parallel execution for speed\n5. **Check fleet_status** - Monitor agent health\n\n---\n\n## Common Workflows\n\n### Test Generation & Execution\n1. `test_generate_enhanced` - Generate tests\n2. `test_execute_parallel` - Run tests\n3. `test_report_comprehensive` - Generate report\n\n### Quality Gate Check\n1. Load quality domain if not auto-loaded\n2. `quality_analyze` - Analyze metrics\n3. `qe_qualitygate_evaluate` - Make go/no-go decision\n\n### Security Audit\n1. `tools_load_domain({ domain: 'security' })`\n2. `qe_security_scan_comprehensive` - Full scan\n3. `qe_security_detect_vulnerabilities` - Detailed analysis\n\n---\n\n## Tool Naming Convention\nAll tools follow: `mcp__agentic_qe__<tool_name>`\n\nExample: `mcp__agentic_qe__test_generate_enhanced`\n";
|
|
8
|
+
export declare const SERVER_NAME = "agentic-qe";
|
|
9
|
+
export declare const SERVER_VERSION = "2.2.0";
|
|
10
|
+
/**
|
|
11
|
+
* Get formatted server info for MCP initialization
|
|
12
|
+
*/
|
|
13
|
+
export declare function getServerInfo(): {
|
|
14
|
+
name: string;
|
|
15
|
+
version: string;
|
|
16
|
+
instructions: string;
|
|
17
|
+
};
|
|
18
|
+
//# sourceMappingURL=server-instructions.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-instructions.d.ts","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,eAAO,MAAM,mBAAmB,oqHA6G/B,CAAC;AAEF,eAAO,MAAM,WAAW,eAAe,CAAC;AACxC,eAAO,MAAM,cAAc,UAAU,CAAC;AAEtC;;GAEG;AACH,wBAAgB,aAAa,IAAI;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAMvF"}
|
|
@@ -0,0 +1,133 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* Server Instructions for Agentic QE MCP Server
|
|
4
|
+
* Phase 2 Implementation - Issue #115
|
|
5
|
+
*
|
|
6
|
+
* These instructions are shown to Claude once per session to guide tool usage.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
+
exports.SERVER_VERSION = exports.SERVER_NAME = exports.SERVER_INSTRUCTIONS = void 0;
|
|
10
|
+
exports.getServerInfo = getServerInfo;
|
|
11
|
+
exports.SERVER_INSTRUCTIONS = `
|
|
12
|
+
# Agentic QE Fleet - MCP Tool Guide
|
|
13
|
+
|
|
14
|
+
## Overview
|
|
15
|
+
Agentic QE provides 96 specialized quality engineering tools organized into a hierarchical system for efficient context usage.
|
|
16
|
+
|
|
17
|
+
## Quick Start
|
|
18
|
+
1. **Discover available tools:** Use \`tools_discover\` to see all domains
|
|
19
|
+
2. **Load domain tools:** Use \`tools_load_domain\` to load specialized tools
|
|
20
|
+
3. **Auto-loading:** Domain tools auto-load when relevant keywords are detected
|
|
21
|
+
|
|
22
|
+
---
|
|
23
|
+
|
|
24
|
+
## Core Tools (Always Available - 14 tools)
|
|
25
|
+
|
|
26
|
+
### Fleet Management
|
|
27
|
+
- \`fleet_init\` - Initialize QE fleet with topology
|
|
28
|
+
- \`agent_spawn\` - Spawn specialized QE agent
|
|
29
|
+
- \`fleet_status\` - Get fleet and agent status
|
|
30
|
+
|
|
31
|
+
### Testing
|
|
32
|
+
- \`test_generate_enhanced\` - AI test generation with pattern recognition
|
|
33
|
+
- \`test_execute_parallel\` - Parallel test execution with retry
|
|
34
|
+
- \`test_report_comprehensive\` - Multi-format test reports
|
|
35
|
+
|
|
36
|
+
### Memory & Coordination
|
|
37
|
+
- \`memory_store\` - Store data with TTL & namespacing
|
|
38
|
+
- \`memory_retrieve\` - Retrieve stored data
|
|
39
|
+
- \`memory_query\` - Pattern-based memory search
|
|
40
|
+
|
|
41
|
+
### Quality & Orchestration
|
|
42
|
+
- \`quality_analyze\` - Analyze quality metrics
|
|
43
|
+
- \`task_orchestrate\` - Orchestrate tasks across agents
|
|
44
|
+
- \`task_status\` - Check task progress
|
|
45
|
+
|
|
46
|
+
### Discovery
|
|
47
|
+
- \`tools_discover\` - List available tool domains
|
|
48
|
+
- \`tools_load_domain\` - Load tools for a domain
|
|
49
|
+
|
|
50
|
+
---
|
|
51
|
+
|
|
52
|
+
## Domain Tools (Load as Needed)
|
|
53
|
+
|
|
54
|
+
| Domain | Keywords | Tools | Use Case |
|
|
55
|
+
|--------|----------|-------|----------|
|
|
56
|
+
| **Security** | security, vulnerability, audit, owasp | 4 tools | Security scanning, vulnerability detection |
|
|
57
|
+
| **Performance** | benchmark, bottleneck, profiling | 4 tools | Performance testing, bottleneck analysis |
|
|
58
|
+
| **Coverage** | coverage, gap, uncovered | 5 tools | Coverage analysis, gap detection |
|
|
59
|
+
| **Quality** | quality gate, deploy, release | 6 tools | Quality gates, deployment readiness |
|
|
60
|
+
| **Flaky** | flaky, unstable, retry | 3 tools | Flaky test detection and stabilization |
|
|
61
|
+
| **Visual** | screenshot, accessibility, wcag | 3 tools | Visual regression, accessibility testing |
|
|
62
|
+
| **Requirements** | bdd, gherkin, acceptance | 2 tools | Requirements validation, BDD generation |
|
|
63
|
+
|
|
64
|
+
### Loading Domain Tools
|
|
65
|
+
\`\`\`
|
|
66
|
+
# Explicit load
|
|
67
|
+
tools_load_domain({ domain: 'security' })
|
|
68
|
+
|
|
69
|
+
# Auto-load: Just mention keywords in your request
|
|
70
|
+
"I need to run a security scan" → Security tools auto-load
|
|
71
|
+
\`\`\`
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
## Specialized Tools (Expert Use)
|
|
76
|
+
|
|
77
|
+
### Learning Domain (4 tools)
|
|
78
|
+
For persistent learning and pattern storage across sessions.
|
|
79
|
+
Load with: \`tools_load_domain({ domain: 'learning' })\`
|
|
80
|
+
|
|
81
|
+
### Advanced Domain (7 tools)
|
|
82
|
+
For mutation testing, API contract validation, production incident replay.
|
|
83
|
+
Load with: \`tools_load_domain({ domain: 'advanced' })\`
|
|
84
|
+
|
|
85
|
+
---
|
|
86
|
+
|
|
87
|
+
## Best Practices
|
|
88
|
+
|
|
89
|
+
1. **Start with core tools** - They handle 80% of use cases
|
|
90
|
+
2. **Let auto-load work** - Mention keywords naturally
|
|
91
|
+
3. **Use tools_discover** - When unsure what's available
|
|
92
|
+
4. **Batch operations** - Use parallel execution for speed
|
|
93
|
+
5. **Check fleet_status** - Monitor agent health
|
|
94
|
+
|
|
95
|
+
---
|
|
96
|
+
|
|
97
|
+
## Common Workflows
|
|
98
|
+
|
|
99
|
+
### Test Generation & Execution
|
|
100
|
+
1. \`test_generate_enhanced\` - Generate tests
|
|
101
|
+
2. \`test_execute_parallel\` - Run tests
|
|
102
|
+
3. \`test_report_comprehensive\` - Generate report
|
|
103
|
+
|
|
104
|
+
### Quality Gate Check
|
|
105
|
+
1. Load quality domain if not auto-loaded
|
|
106
|
+
2. \`quality_analyze\` - Analyze metrics
|
|
107
|
+
3. \`qe_qualitygate_evaluate\` - Make go/no-go decision
|
|
108
|
+
|
|
109
|
+
### Security Audit
|
|
110
|
+
1. \`tools_load_domain({ domain: 'security' })\`
|
|
111
|
+
2. \`qe_security_scan_comprehensive\` - Full scan
|
|
112
|
+
3. \`qe_security_detect_vulnerabilities\` - Detailed analysis
|
|
113
|
+
|
|
114
|
+
---
|
|
115
|
+
|
|
116
|
+
## Tool Naming Convention
|
|
117
|
+
All tools follow: \`mcp__agentic_qe__<tool_name>\`
|
|
118
|
+
|
|
119
|
+
Example: \`mcp__agentic_qe__test_generate_enhanced\`
|
|
120
|
+
`;
|
|
121
|
+
exports.SERVER_NAME = 'agentic-qe';
|
|
122
|
+
exports.SERVER_VERSION = '2.2.0';
|
|
123
|
+
/**
|
|
124
|
+
* Get formatted server info for MCP initialization
|
|
125
|
+
*/
|
|
126
|
+
function getServerInfo() {
|
|
127
|
+
return {
|
|
128
|
+
name: exports.SERVER_NAME,
|
|
129
|
+
version: exports.SERVER_VERSION,
|
|
130
|
+
instructions: exports.SERVER_INSTRUCTIONS,
|
|
131
|
+
};
|
|
132
|
+
}
|
|
133
|
+
//# sourceMappingURL=server-instructions.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"server-instructions.js","sourceRoot":"","sources":["../../src/mcp/server-instructions.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAuHH,sCAMC;AA3HY,QAAA,mBAAmB,GAAG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA6GlC,CAAC;AAEW,QAAA,WAAW,GAAG,YAAY,CAAC;AAC3B,QAAA,cAAc,GAAG,OAAO,CAAC;AAEtC;;GAEG;AACH,SAAgB,aAAa;IAC3B,OAAO;QACL,IAAI,EAAE,mBAAW;QACjB,OAAO,EAAE,sBAAc;QACvB,YAAY,EAAE,2BAAmB;KAClC,CAAC;AACJ,CAAC"}
|
package/dist/mcp/server.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;
|
|
1
|
+
{"version":3,"file":"server.d.ts","sourceRoot":"","sources":["../../src/mcp/server.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,MAAM,EAAE,MAAM,2CAA2C,CAAC;AACnE,OAAO,EAAE,oBAAoB,EAAE,MAAM,2CAA2C,CAAC;AA6GjF;;;;;GAKG;AACH,qBAAa,kBAAkB;IAC7B,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAmB;IACnC,OAAO,CAAC,QAAQ,CAAgB;IAChC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,WAAW,CAAmB;IACtC,OAAO,CAAC,UAAU,CAAqB;IACvC,OAAO,CAAC,SAAS,CAAmB;IACpC,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,gBAAgB,CAA+B;;IA+CvD;;OAEG;IACH,OAAO,CAAC,kBAAkB;IAiJ1B;;;;;;;OAOG;IACH,OAAO,CAAC,0BAA0B;IAmClC;;OAEG;IACH,OAAO,CAAC,oBAAoB;IAmlB5B;;OAEG;IACG,KAAK,CAAC,SAAS,CAAC,EAAE,oBAAoB,GAAG,OAAO,CAAC,IAAI,CAAC;IAY5D;;OAEG;IACG,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC;IAQ3B;;OAEG;IACH,SAAS,IAAI,MAAM;IAInB;;OAEG;IACH,QAAQ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;IAIR;;OAEG;IACH,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;CAGxC;AAED;;GAEG;AACH,wBAAsB,qBAAqB,IAAI,OAAO,CAAC,kBAAkB,CAAC,CAIzE;AAED;;GAEG;AACH,wBAAsB,IAAI,IAAI,OAAO,CAAC,IAAI,CAAC,CAuB1C"}
|