atlas-pipeline-mcp 1.0.20 → 1.0.22
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/mcp.js +191 -0
- package/dist/mcp.js.map +1 -1
- package/dist/tools/advanced-testgen.d.ts +93 -0
- package/dist/tools/advanced-testgen.d.ts.map +1 -0
- package/dist/tools/advanced-testgen.js +382 -0
- package/dist/tools/advanced-testgen.js.map +1 -0
- package/dist/tools/architecture-advisor.d.ts +174 -0
- package/dist/tools/architecture-advisor.d.ts.map +1 -0
- package/dist/tools/architecture-advisor.js +509 -0
- package/dist/tools/architecture-advisor.js.map +1 -0
- package/dist/tools/code-migration.d.ts +86 -0
- package/dist/tools/code-migration.d.ts.map +1 -0
- package/dist/tools/code-migration.js +339 -0
- package/dist/tools/code-migration.js.map +1 -0
- package/dist/tools/dashboard.d.ts +107 -0
- package/dist/tools/dashboard.d.ts.map +1 -0
- package/dist/tools/dashboard.js +544 -0
- package/dist/tools/dashboard.js.map +1 -0
- package/dist/tools/dependencies.d.ts +105 -0
- package/dist/tools/dependencies.d.ts.map +1 -0
- package/dist/tools/dependencies.js +410 -0
- package/dist/tools/dependencies.js.map +1 -0
- package/dist/tools/ml-predictor.d.ts +84 -0
- package/dist/tools/ml-predictor.d.ts.map +1 -0
- package/dist/tools/ml-predictor.js +407 -0
- package/dist/tools/ml-predictor.js.map +1 -0
- package/dist/tools/profiler.d.ts +83 -0
- package/dist/tools/profiler.d.ts.map +1 -0
- package/dist/tools/profiler.js +385 -0
- package/dist/tools/profiler.js.map +1 -0
- package/dist/tools/rag-search.d.ts +88 -0
- package/dist/tools/rag-search.d.ts.map +1 -0
- package/dist/tools/rag-search.js +338 -0
- package/dist/tools/rag-search.js.map +1 -0
- package/dist/tools/refactor.d.ts +63 -0
- package/dist/tools/refactor.d.ts.map +1 -0
- package/dist/tools/refactor.js +308 -0
- package/dist/tools/refactor.js.map +1 -0
- package/dist/tools/review.d.ts +98 -0
- package/dist/tools/review.d.ts.map +1 -0
- package/dist/tools/review.js +428 -0
- package/dist/tools/review.js.map +1 -0
- package/package.json +2 -2
|
@@ -0,0 +1,385 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Server - Performance Profiling and Analysis Tool
|
|
3
|
+
*
|
|
4
|
+
* Advanced performance profiling for code optimization:
|
|
5
|
+
* - Time complexity analysis
|
|
6
|
+
* - Space complexity analysis
|
|
7
|
+
* - Benchmark generation
|
|
8
|
+
* - Memory leak detection
|
|
9
|
+
* - CPU hotspot identification
|
|
10
|
+
* - I/O bottleneck detection
|
|
11
|
+
* - Algorithm efficiency suggestions
|
|
12
|
+
* - Big-O notation analysis
|
|
13
|
+
*
|
|
14
|
+
* @module profiler
|
|
15
|
+
* @author Nishant Unavane
|
|
16
|
+
* @version 1.0.0
|
|
17
|
+
*/
|
|
18
|
+
import { getActiveProvider, isNoLLMMode } from '../providers/index.js';
|
|
19
|
+
import { logger, createTimer } from '../utils.js';
|
|
20
|
+
import { z } from 'zod';
|
|
21
|
+
// ============================================================================
|
|
22
|
+
// Validation Schema
|
|
23
|
+
// ============================================================================
|
|
24
|
+
const ProfileOptionsSchema = z.object({
|
|
25
|
+
code: z.string().min(1).max(500000),
|
|
26
|
+
language: z.string().min(1),
|
|
27
|
+
filePath: z.string().optional(),
|
|
28
|
+
analyzeTime: z.boolean().optional(),
|
|
29
|
+
analyzeSpace: z.boolean().optional(),
|
|
30
|
+
detectLeaks: z.boolean().optional(),
|
|
31
|
+
identifyHotspots: z.boolean().optional(),
|
|
32
|
+
generateBenchmark: z.boolean().optional(),
|
|
33
|
+
inputSizes: z.array(z.number()).optional(),
|
|
34
|
+
expectedInputSize: z.enum(['small', 'medium', 'large', 'huge']).optional(),
|
|
35
|
+
constraints: z.array(z.string()).optional(),
|
|
36
|
+
});
|
|
37
|
+
// ============================================================================
|
|
38
|
+
// Static Code Analysis
|
|
39
|
+
// ============================================================================
|
|
40
|
+
/**
|
|
41
|
+
* Analyze code structure for performance patterns
|
|
42
|
+
*/
|
|
43
|
+
function analyzeCodeStructure(code, language) {
|
|
44
|
+
// Count loops
|
|
45
|
+
const loopPatterns = /\b(for|while|forEach|map|filter|reduce|each)\b/gi;
|
|
46
|
+
const loops = (code.match(loopPatterns) || []).length;
|
|
47
|
+
// Detect nested loops (simplified)
|
|
48
|
+
const nestedLoopPattern = /\b(for|while)\b[^{]*{[^}]*(for|while)\b/gis;
|
|
49
|
+
const nestedLoops = (code.match(nestedLoopPattern) || []).length;
|
|
50
|
+
// Detect recursion
|
|
51
|
+
const functionNames = [...code.matchAll(/(?:function|def|fn)\s+(\w+)/g)].map(m => m[1]);
|
|
52
|
+
const recursiveCalls = functionNames.filter(name => new RegExp(`\\b${name}\\s*\\(`).test(code)).length;
|
|
53
|
+
// Detect I/O operations
|
|
54
|
+
const ioOperations = [];
|
|
55
|
+
// File I/O
|
|
56
|
+
if (code.match(/\b(readFile|writeFile|open|read|write|createWriteStream)\b/i)) {
|
|
57
|
+
ioOperations.push({
|
|
58
|
+
type: 'file',
|
|
59
|
+
operation: 'File I/O detected',
|
|
60
|
+
isBlocking: code.includes('Sync') || code.includes('await'),
|
|
61
|
+
isRepeated: /\b(for|while)[^{]*{[^}]*(read|write)/i.test(code),
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
// Network I/O
|
|
65
|
+
if (code.match(/\b(fetch|axios|request|http\.get|http\.post)\b/i)) {
|
|
66
|
+
ioOperations.push({
|
|
67
|
+
type: 'network',
|
|
68
|
+
operation: 'Network request detected',
|
|
69
|
+
isBlocking: code.includes('await') || code.includes('.then('),
|
|
70
|
+
isRepeated: /\b(for|while)[^{]*{[^}]*(fetch|request)/i.test(code),
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
// Database operations
|
|
74
|
+
if (code.match(/\b(query|execute|find|findOne|insert|update|delete|aggregate)\b/i)) {
|
|
75
|
+
ioOperations.push({
|
|
76
|
+
type: 'database',
|
|
77
|
+
operation: 'Database query detected',
|
|
78
|
+
isBlocking: true,
|
|
79
|
+
isRepeated: /\b(for|while)[^{]*{[^}]*(query|find)/i.test(code),
|
|
80
|
+
});
|
|
81
|
+
}
|
|
82
|
+
return { loops, nestedLoops, recursiveCalls, ioOperations };
|
|
83
|
+
}
|
|
84
|
+
/**
|
|
85
|
+
* Estimate Big-O complexity from code structure
|
|
86
|
+
*/
|
|
87
|
+
function estimateComplexity(structure) {
|
|
88
|
+
const { loops, nestedLoops, recursiveCalls, ioOperations } = structure;
|
|
89
|
+
let timeComplexity = 'O(1)';
|
|
90
|
+
let spaceComplexity = 'O(1)';
|
|
91
|
+
let confidence = 0.6;
|
|
92
|
+
// Time complexity estimation
|
|
93
|
+
if (nestedLoops >= 3) {
|
|
94
|
+
timeComplexity = 'O(n³) or worse';
|
|
95
|
+
confidence = 0.7;
|
|
96
|
+
}
|
|
97
|
+
else if (nestedLoops >= 2) {
|
|
98
|
+
timeComplexity = 'O(n²)';
|
|
99
|
+
confidence = 0.75;
|
|
100
|
+
}
|
|
101
|
+
else if (nestedLoops === 1 || loops > 1) {
|
|
102
|
+
timeComplexity = 'O(n log n) or O(n²)';
|
|
103
|
+
confidence = 0.65;
|
|
104
|
+
}
|
|
105
|
+
else if (loops === 1) {
|
|
106
|
+
timeComplexity = 'O(n)';
|
|
107
|
+
confidence = 0.8;
|
|
108
|
+
}
|
|
109
|
+
else if (recursiveCalls > 0) {
|
|
110
|
+
timeComplexity = 'O(2ⁿ) or O(n!)';
|
|
111
|
+
confidence = 0.5;
|
|
112
|
+
}
|
|
113
|
+
// Space complexity estimation
|
|
114
|
+
if (recursiveCalls > 0) {
|
|
115
|
+
spaceComplexity = 'O(n) recursion stack';
|
|
116
|
+
confidence = Math.min(confidence, 0.7);
|
|
117
|
+
}
|
|
118
|
+
else if (loops > 0) {
|
|
119
|
+
spaceComplexity = 'O(n) or O(1)';
|
|
120
|
+
confidence = Math.min(confidence, 0.6);
|
|
121
|
+
}
|
|
122
|
+
return { time: timeComplexity, space: spaceComplexity, confidence };
|
|
123
|
+
}
|
|
124
|
+
/**
|
|
125
|
+
* Detect memory leak patterns
|
|
126
|
+
*/
|
|
127
|
+
function detectMemoryLeaks(code, language) {
|
|
128
|
+
let riskScore = 0;
|
|
129
|
+
// Global variable accumulation
|
|
130
|
+
if (code.match(/\b(global|window)\.\w+\s*=\s*\[/)) {
|
|
131
|
+
riskScore += 3;
|
|
132
|
+
}
|
|
133
|
+
// Event listeners without cleanup
|
|
134
|
+
if (code.match(/addEventListener/) && !code.match(/removeEventListener/)) {
|
|
135
|
+
riskScore += 2;
|
|
136
|
+
}
|
|
137
|
+
// Timers without cleanup
|
|
138
|
+
if ((code.match(/setInterval|setTimeout/) || []).length >
|
|
139
|
+
(code.match(/clearInterval|clearTimeout/) || []).length) {
|
|
140
|
+
riskScore += 2;
|
|
141
|
+
}
|
|
142
|
+
// Circular references
|
|
143
|
+
if (code.match(/\w+\.\w+\s*=\s*\w+/) && code.match(/\w+\.\w+\s*=\s*this/)) {
|
|
144
|
+
riskScore += 1;
|
|
145
|
+
}
|
|
146
|
+
// Unbounded collections
|
|
147
|
+
if (code.match(/\[\]\.push|Map\(\)|Set\(\)/) && !code.match(/clear|delete|splice/)) {
|
|
148
|
+
riskScore += 2;
|
|
149
|
+
}
|
|
150
|
+
if (riskScore >= 6)
|
|
151
|
+
return 'high';
|
|
152
|
+
if (riskScore >= 4)
|
|
153
|
+
return 'medium';
|
|
154
|
+
if (riskScore >= 2)
|
|
155
|
+
return 'low';
|
|
156
|
+
return 'none';
|
|
157
|
+
}
|
|
158
|
+
// ============================================================================
|
|
159
|
+
// Main Profile Function
|
|
160
|
+
// ============================================================================
|
|
161
|
+
/**
|
|
162
|
+
* Comprehensive performance profiling and analysis
|
|
163
|
+
*/
|
|
164
|
+
export async function profileCode(options) {
|
|
165
|
+
const timer = createTimer();
|
|
166
|
+
const { code, language, filePath, analyzeTime = true, analyzeSpace = true, detectLeaks = true, identifyHotspots = true, generateBenchmark = false, inputSizes = [10, 100, 1000, 10000], expectedInputSize = 'medium', constraints = [], } = ProfileOptionsSchema.parse(options);
|
|
167
|
+
logger.info({ language, filePath }, 'Starting performance profiling');
|
|
168
|
+
const warnings = [];
|
|
169
|
+
// Static analysis
|
|
170
|
+
const structure = analyzeCodeStructure(code, language);
|
|
171
|
+
const complexity = estimateComplexity(structure);
|
|
172
|
+
const memoryLeakRisk = detectLeaks ? detectMemoryLeaks(code, language) : 'none';
|
|
173
|
+
// Build analysis prompt
|
|
174
|
+
const prompt = `You are a performance optimization expert with 50 years of experience. Analyze this ${language} code for performance.
|
|
175
|
+
|
|
176
|
+
**Code:**
|
|
177
|
+
\`\`\`${language}
|
|
178
|
+
${code}
|
|
179
|
+
\`\`\`
|
|
180
|
+
|
|
181
|
+
**Static Analysis:**
|
|
182
|
+
- Loops detected: ${structure.loops}
|
|
183
|
+
- Nested loops: ${structure.nestedLoops}
|
|
184
|
+
- Recursive calls: ${structure.recursiveCalls}
|
|
185
|
+
- I/O operations: ${structure.ioOperations.length}
|
|
186
|
+
- Estimated time complexity: ${complexity.time}
|
|
187
|
+
- Estimated space complexity: ${complexity.space}
|
|
188
|
+
- Memory leak risk: ${memoryLeakRisk}
|
|
189
|
+
- Expected input size: ${expectedInputSize}
|
|
190
|
+
|
|
191
|
+
**I/O Operations:**
|
|
192
|
+
${structure.ioOperations.map(io => `- ${io.type} (${io.isBlocking ? 'blocking' : 'non-blocking'}${io.isRepeated ? ', repeated' : ''})`).join('\n') || '- None detected'}
|
|
193
|
+
|
|
194
|
+
**Constraints:**
|
|
195
|
+
${constraints.length > 0 ? constraints.join('\n') : '- None specified'}
|
|
196
|
+
|
|
197
|
+
**Tasks:**
|
|
198
|
+
1. Analyze time complexity (Big-O notation) for best, average, and worst cases
|
|
199
|
+
2. Analyze space complexity
|
|
200
|
+
3. Identify performance hotspots (CPU, memory, I/O)
|
|
201
|
+
4. Provide optimization suggestions ranked by impact
|
|
202
|
+
5. ${generateBenchmark ? 'Generate benchmark code' : ''}
|
|
203
|
+
|
|
204
|
+
**Format your response as:**
|
|
205
|
+
|
|
206
|
+
TIME_COMPLEXITY:
|
|
207
|
+
Best: O(...)
|
|
208
|
+
Average: O(...)
|
|
209
|
+
Worst: O(...)
|
|
210
|
+
Explanation: [why this complexity]
|
|
211
|
+
|
|
212
|
+
SPACE_COMPLEXITY:
|
|
213
|
+
Best: O(...)
|
|
214
|
+
Average: O(...)
|
|
215
|
+
Worst: O(...)
|
|
216
|
+
Explanation: [why this complexity]
|
|
217
|
+
|
|
218
|
+
HOTSPOTS:
|
|
219
|
+
- [location]: [type] - [description] - Impact: [X%]
|
|
220
|
+
...
|
|
221
|
+
|
|
222
|
+
OPTIMIZATIONS:
|
|
223
|
+
Priority 1: [category] - [description] - Gain: [X%]
|
|
224
|
+
Priority 2: [category] - [description] - Gain: [X%]
|
|
225
|
+
...
|
|
226
|
+
|
|
227
|
+
${generateBenchmark ? `BENCHMARK:
|
|
228
|
+
\`\`\`${language}
|
|
229
|
+
[benchmark code here]
|
|
230
|
+
\`\`\`
|
|
231
|
+
` : ''}`;
|
|
232
|
+
let analysis = {
|
|
233
|
+
timeComplexity: {
|
|
234
|
+
bigO: complexity.time,
|
|
235
|
+
bestCase: complexity.time,
|
|
236
|
+
averageCase: complexity.time,
|
|
237
|
+
worstCase: complexity.time,
|
|
238
|
+
explanation: 'Static analysis estimate',
|
|
239
|
+
confidence: complexity.confidence,
|
|
240
|
+
},
|
|
241
|
+
spaceComplexity: {
|
|
242
|
+
bigO: complexity.space,
|
|
243
|
+
bestCase: complexity.space,
|
|
244
|
+
averageCase: complexity.space,
|
|
245
|
+
worstCase: complexity.space,
|
|
246
|
+
explanation: 'Static analysis estimate',
|
|
247
|
+
confidence: complexity.confidence,
|
|
248
|
+
},
|
|
249
|
+
potentialBottlenecks: [],
|
|
250
|
+
memoryLeakRisk,
|
|
251
|
+
ioOperations: structure.ioOperations,
|
|
252
|
+
};
|
|
253
|
+
let hotspots = [];
|
|
254
|
+
let suggestions = [];
|
|
255
|
+
let benchmarkCode;
|
|
256
|
+
if (isNoLLMMode()) {
|
|
257
|
+
warnings.push('No LLM provider - using static analysis only');
|
|
258
|
+
// Add basic suggestions based on static analysis
|
|
259
|
+
if (structure.nestedLoops >= 2) {
|
|
260
|
+
suggestions.push({
|
|
261
|
+
priority: 9,
|
|
262
|
+
category: 'algorithm',
|
|
263
|
+
description: 'Nested loops detected - consider using hash maps or better algorithm',
|
|
264
|
+
estimatedGain: '10-100x faster',
|
|
265
|
+
});
|
|
266
|
+
}
|
|
267
|
+
if (structure.ioOperations.some(io => io.isRepeated)) {
|
|
268
|
+
suggestions.push({
|
|
269
|
+
priority: 10,
|
|
270
|
+
category: 'io',
|
|
271
|
+
description: 'Repeated I/O operations in loop - batch or cache results',
|
|
272
|
+
estimatedGain: '5-50x faster',
|
|
273
|
+
});
|
|
274
|
+
}
|
|
275
|
+
if (memoryLeakRisk === 'high' || memoryLeakRisk === 'medium') {
|
|
276
|
+
suggestions.push({
|
|
277
|
+
priority: 8,
|
|
278
|
+
category: 'memory',
|
|
279
|
+
description: 'High memory leak risk - add cleanup for timers/listeners',
|
|
280
|
+
estimatedGain: 'Prevents memory growth',
|
|
281
|
+
});
|
|
282
|
+
}
|
|
283
|
+
}
|
|
284
|
+
else {
|
|
285
|
+
const provider = await getActiveProvider();
|
|
286
|
+
try {
|
|
287
|
+
const response = await provider.complete(prompt, {
|
|
288
|
+
maxTokens: 3000,
|
|
289
|
+
temperature: 0.2,
|
|
290
|
+
});
|
|
291
|
+
const responseText = response.text;
|
|
292
|
+
// Parse time complexity
|
|
293
|
+
const timeMatch = responseText.match(/TIME_COMPLEXITY:\s*Best:\s*([^\n]+)\s*Average:\s*([^\n]+)\s*Worst:\s*([^\n]+)\s*Explanation:\s*([^\n]+)/i);
|
|
294
|
+
if (timeMatch && timeMatch[1] && timeMatch[2] && timeMatch[3] && timeMatch[4]) {
|
|
295
|
+
analysis.timeComplexity = {
|
|
296
|
+
bigO: timeMatch[2].trim(),
|
|
297
|
+
bestCase: timeMatch[1].trim(),
|
|
298
|
+
averageCase: timeMatch[2].trim(),
|
|
299
|
+
worstCase: timeMatch[3].trim(),
|
|
300
|
+
explanation: timeMatch[4].trim(),
|
|
301
|
+
confidence: 0.85,
|
|
302
|
+
};
|
|
303
|
+
}
|
|
304
|
+
// Parse space complexity
|
|
305
|
+
const spaceMatch = responseText.match(/SPACE_COMPLEXITY:\s*Best:\s*([^\n]+)\s*Average:\s*([^\n]+)\s*Worst:\s*([^\n]+)\s*Explanation:\s*([^\n]+)/i);
|
|
306
|
+
if (spaceMatch && spaceMatch[1] && spaceMatch[2] && spaceMatch[3] && spaceMatch[4]) {
|
|
307
|
+
analysis.spaceComplexity = {
|
|
308
|
+
bigO: spaceMatch[2].trim(),
|
|
309
|
+
bestCase: spaceMatch[1].trim(),
|
|
310
|
+
averageCase: spaceMatch[2].trim(),
|
|
311
|
+
worstCase: spaceMatch[3].trim(),
|
|
312
|
+
explanation: spaceMatch[4].trim(),
|
|
313
|
+
confidence: 0.85,
|
|
314
|
+
};
|
|
315
|
+
}
|
|
316
|
+
// Parse hotspots
|
|
317
|
+
const hotspotsMatch = responseText.match(/HOTSPOTS:\s*([\s\S]*?)(?:OPTIMIZATIONS:|$)/i);
|
|
318
|
+
if (hotspotsMatch && hotspotsMatch[1]) {
|
|
319
|
+
const hotspotLines = hotspotsMatch[1].trim().split('\n')
|
|
320
|
+
.filter((line) => line.trim().startsWith('-'));
|
|
321
|
+
hotspots = hotspotLines.map((line) => {
|
|
322
|
+
const clean = line.replace(/^-\s*/, '').trim();
|
|
323
|
+
const parts = clean.split(' - ');
|
|
324
|
+
return {
|
|
325
|
+
location: parts[0] || 'Unknown',
|
|
326
|
+
type: parts[1]?.toLowerCase() || 'cpu',
|
|
327
|
+
severity: 'high',
|
|
328
|
+
description: parts[2] || clean,
|
|
329
|
+
estimatedImpact: parts[3] || 'Unknown',
|
|
330
|
+
};
|
|
331
|
+
});
|
|
332
|
+
}
|
|
333
|
+
// Parse optimizations
|
|
334
|
+
const optsMatch = responseText.match(/OPTIMIZATIONS:\s*([\s\S]*?)(?:BENCHMARK:|$)/i);
|
|
335
|
+
if (optsMatch && optsMatch[1]) {
|
|
336
|
+
const optLines = optsMatch[1].trim().split('\n')
|
|
337
|
+
.filter((line) => /Priority\s+\d+:/i.test(line));
|
|
338
|
+
suggestions = optLines.map((line) => {
|
|
339
|
+
const priorityMatch = line.match(/Priority\s+(\d+):/i);
|
|
340
|
+
const priority = priorityMatch ? parseInt(priorityMatch[1] || '5') : 5;
|
|
341
|
+
const parts = line.split(' - ');
|
|
342
|
+
const categoryPart = parts[0]?.split(':')[1]?.trim() || 'algorithm';
|
|
343
|
+
return {
|
|
344
|
+
priority,
|
|
345
|
+
category: categoryPart.toLowerCase(),
|
|
346
|
+
description: parts[1] || line,
|
|
347
|
+
estimatedGain: parts[2] || 'Unknown',
|
|
348
|
+
};
|
|
349
|
+
}).sort((a, b) => b.priority - a.priority);
|
|
350
|
+
}
|
|
351
|
+
// Parse benchmark code
|
|
352
|
+
if (generateBenchmark) {
|
|
353
|
+
const benchMatch = responseText.match(/BENCHMARK:\s*```[\w]*\s*([\s\S]*?)```/i);
|
|
354
|
+
if (benchMatch && benchMatch[1]) {
|
|
355
|
+
benchmarkCode = benchMatch[1].trim();
|
|
356
|
+
}
|
|
357
|
+
}
|
|
358
|
+
}
|
|
359
|
+
catch (error) {
|
|
360
|
+
logger.error({ error }, 'Profiling failed');
|
|
361
|
+
warnings.push(`LLM error: ${error instanceof Error ? error.message : 'Unknown'}`);
|
|
362
|
+
}
|
|
363
|
+
}
|
|
364
|
+
const executionTimeMs = timer.elapsed();
|
|
365
|
+
logger.info({
|
|
366
|
+
timeComplexity: analysis.timeComplexity.bigO,
|
|
367
|
+
hotspots: hotspots.length,
|
|
368
|
+
suggestions: suggestions.length,
|
|
369
|
+
executionTimeMs
|
|
370
|
+
}, 'Profiling completed');
|
|
371
|
+
return {
|
|
372
|
+
code,
|
|
373
|
+
analysis,
|
|
374
|
+
hotspots,
|
|
375
|
+
suggestions,
|
|
376
|
+
benchmarkCode,
|
|
377
|
+
executionTimeMs,
|
|
378
|
+
warnings,
|
|
379
|
+
};
|
|
380
|
+
}
|
|
381
|
+
// ============================================================================
|
|
382
|
+
// Export
|
|
383
|
+
// ============================================================================
|
|
384
|
+
export default profileCode;
|
|
385
|
+
//# sourceMappingURL=profiler.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"profiler.js","sourceRoot":"","sources":["../../src/tools/profiler.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,88 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Server - RAG-Powered Codebase Search & Understanding
|
|
3
|
+
*
|
|
4
|
+
* Semantic code search using vector embeddings and RAG:
|
|
5
|
+
* - Natural language queries to find code
|
|
6
|
+
* - Semantic similarity matching (not just keyword search)
|
|
7
|
+
* - Code understanding through embeddings
|
|
8
|
+
* - Cross-file dependency discovery
|
|
9
|
+
* - Architecture pattern detection
|
|
10
|
+
* - Similar code detection
|
|
11
|
+
* - Knowledge graph construction
|
|
12
|
+
* - Multi-modal code analysis (code + docs + comments)
|
|
13
|
+
*
|
|
14
|
+
* @module rag-search
|
|
15
|
+
* @author Nishant Unavane
|
|
16
|
+
* @version 1.0.0
|
|
17
|
+
*/
|
|
18
|
+
export interface RAGSearchOptions {
|
|
19
|
+
projectPath: string;
|
|
20
|
+
query: string;
|
|
21
|
+
searchType?: 'semantic' | 'keyword' | 'hybrid';
|
|
22
|
+
maxResults?: number;
|
|
23
|
+
minSimilarity?: number;
|
|
24
|
+
fileTypes?: string[];
|
|
25
|
+
excludePaths?: string[];
|
|
26
|
+
includeTests?: boolean;
|
|
27
|
+
includeDocs?: boolean;
|
|
28
|
+
chunkSize?: number;
|
|
29
|
+
overlapSize?: number;
|
|
30
|
+
useCache?: boolean;
|
|
31
|
+
}
|
|
32
|
+
export interface RAGSearchResult {
|
|
33
|
+
query: string;
|
|
34
|
+
results: CodeMatch[];
|
|
35
|
+
totalMatches: number;
|
|
36
|
+
searchTimeMs: number;
|
|
37
|
+
indexedFiles: number;
|
|
38
|
+
semanticSearch: boolean;
|
|
39
|
+
knowledgeGraph?: KnowledgeGraph;
|
|
40
|
+
}
|
|
41
|
+
export interface CodeMatch {
|
|
42
|
+
filePath: string;
|
|
43
|
+
snippet: string;
|
|
44
|
+
context: string;
|
|
45
|
+
similarity: number;
|
|
46
|
+
explanation: string;
|
|
47
|
+
lineStart: number;
|
|
48
|
+
lineEnd: number;
|
|
49
|
+
matchType: 'exact' | 'semantic' | 'partial';
|
|
50
|
+
metadata: {
|
|
51
|
+
language: string;
|
|
52
|
+
fileSize: number;
|
|
53
|
+
lastModified: Date;
|
|
54
|
+
category: CodeCategory;
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
export type CodeCategory = 'function' | 'class' | 'interface' | 'type' | 'variable' | 'import' | 'comment' | 'documentation';
|
|
58
|
+
export interface KnowledgeGraph {
|
|
59
|
+
nodes: GraphNode[];
|
|
60
|
+
edges: GraphEdge[];
|
|
61
|
+
clusters: CodeCluster[];
|
|
62
|
+
}
|
|
63
|
+
export interface GraphNode {
|
|
64
|
+
id: string;
|
|
65
|
+
label: string;
|
|
66
|
+
type: CodeCategory;
|
|
67
|
+
filePath: string;
|
|
68
|
+
importance: number;
|
|
69
|
+
}
|
|
70
|
+
export interface GraphEdge {
|
|
71
|
+
from: string;
|
|
72
|
+
to: string;
|
|
73
|
+
type: 'imports' | 'calls' | 'extends' | 'implements' | 'references';
|
|
74
|
+
weight: number;
|
|
75
|
+
}
|
|
76
|
+
export interface CodeCluster {
|
|
77
|
+
id: string;
|
|
78
|
+
files: string[];
|
|
79
|
+
topic: string;
|
|
80
|
+
keywords: string[];
|
|
81
|
+
cohesion: number;
|
|
82
|
+
}
|
|
83
|
+
/**
|
|
84
|
+
* RAG-powered semantic code search
|
|
85
|
+
*/
|
|
86
|
+
export declare function searchCodebase(options: RAGSearchOptions): Promise<RAGSearchResult>;
|
|
87
|
+
export default searchCodebase;
|
|
88
|
+
//# sourceMappingURL=rag-search.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rag-search.d.ts","sourceRoot":"","sources":["../../src/tools/rag-search.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;GAgBG;AAYH,MAAM,WAAW,gBAAgB;IAC/B,WAAW,EAAE,MAAM,CAAC;IACpB,KAAK,EAAE,MAAM,CAAC;IAGd,UAAU,CAAC,EAAE,UAAU,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC/C,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,aAAa,CAAC,EAAE,MAAM,CAAC;IAGvB,SAAS,CAAC,EAAE,MAAM,EAAE,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,EAAE,CAAC;IACxB,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,WAAW,CAAC,EAAE,OAAO,CAAC;IAGtB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,OAAO,EAAE,SAAS,EAAE,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,OAAO,CAAC;IACxB,cAAc,CAAC,EAAE,cAAc,CAAC;CACjC;AAED,MAAM,WAAW,SAAS;IACxB,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,OAAO,GAAG,UAAU,GAAG,SAAS,CAAC;IAC5C,QAAQ,EAAE;QACR,QAAQ,EAAE,MAAM,CAAC;QACjB,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,IAAI,CAAC;QACnB,QAAQ,EAAE,YAAY,CAAC;KACxB,CAAC;CACH;AAED,MAAM,MAAM,YAAY,GACpB,UAAU,GACV,OAAO,GACP,WAAW,GACX,MAAM,GACN,UAAU,GACV,QAAQ,GACR,SAAS,GACT,eAAe,CAAC;AAEpB,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,KAAK,EAAE,SAAS,EAAE,CAAC;IACnB,QAAQ,EAAE,WAAW,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,SAAS;IACxB,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,YAAY,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,UAAU,EAAE,MAAM,CAAC;CACpB;AAED,MAAM,WAAW,SAAS;IACxB,IAAI,EAAE,MAAM,CAAC;IACb,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,SAAS,GAAG,OAAO,GAAG,SAAS,GAAG,YAAY,GAAG,YAAY,CAAC;IACpE,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,WAAW;IAC1B,EAAE,EAAE,MAAM,CAAC;IACX,KAAK,EAAE,MAAM,EAAE,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,EAAE,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AA2OD;;GAEG;AACH,wBAAsB,cAAc,CAAC,OAAO,EAAE,gBAAgB,GAAG,OAAO,CAAC,eAAe,CAAC,CA6IxF;AAMD,eAAe,cAAc,CAAC"}
|