atlas-pipeline-mcp 1.0.21 → 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.
@@ -0,0 +1,339 @@
1
+ /**
2
+ * Atlas Server - Intelligent Code Migration Assistant
3
+ *
4
+ * AI-powered code migration and modernization:
5
+ * - Framework upgrades (React 17→18, Vue 2→3, etc.)
6
+ * - Language conversion (JS→TS, Python 2→3)
7
+ * - API migration (deprecated→modern APIs)
8
+ * - Dependency upgrades with breaking change handling
9
+ * - Architecture modernization (Class→Functional, Callbacks→Promises→Async/Await)
10
+ * - Build tool migration (Webpack→Vite, etc.)
11
+ * - Database migration generation
12
+ * - CI/CD pipeline modernization
13
+ *
14
+ * @module code-migration
15
+ * @author Nishant Unavane
16
+ * @version 1.0.0
17
+ */
18
+ import { promises as fs } from 'fs';
19
+ import { join } from 'path';
20
+ import { logger, createTimer } from '../utils.js';
21
+ import { z } from 'zod';
22
+ // ============================================================================
23
+ // Validation Schema
24
+ // ============================================================================
25
+ const MigrationOptionsSchema = z.object({
26
+ projectPath: z.string().min(1),
27
+ migrationType: z.enum([
28
+ 'javascript-to-typescript',
29
+ 'react-upgrade',
30
+ 'vue-upgrade',
31
+ 'python-2-to-3',
32
+ 'class-to-functional',
33
+ 'callback-to-async',
34
+ 'webpack-to-vite',
35
+ 'jest-to-vitest',
36
+ 'commonjs-to-esm',
37
+ 'api-migration',
38
+ 'database-migration',
39
+ 'custom',
40
+ ]),
41
+ from: z.string(),
42
+ to: z.string(),
43
+ files: z.array(z.string()).optional(),
44
+ filePattern: z.string().optional(),
45
+ strategy: z.enum(['safe', 'aggressive', 'manual']).optional(),
46
+ preserveComments: z.boolean().optional(),
47
+ createBackup: z.boolean().optional(),
48
+ dryRun: z.boolean().optional(),
49
+ handleBreakingChanges: z.boolean().optional(),
50
+ updateDependencies: z.boolean().optional(),
51
+ generateTests: z.boolean().optional(),
52
+ });
53
+ // ============================================================================
54
+ // Migration Strategies
55
+ // ============================================================================
56
+ /**
57
+ * Migrate JavaScript to TypeScript
58
+ */
59
+ async function migrateJSToTS(code, filePath) {
60
+ const changes = [];
61
+ const lines = code.split('\n');
62
+ // Add type annotations to function parameters
63
+ const functionPattern = /function\s+(\w+)\s*\(([^)]*)\)/g;
64
+ let match;
65
+ while ((match = functionPattern.exec(code)) !== null) {
66
+ const funcName = match[1];
67
+ const params = match[2];
68
+ if (params && !params.includes(':')) {
69
+ const typedParams = params.split(',').map(p => `${p.trim()}: any`).join(', ');
70
+ const before = match[0];
71
+ const after = `function ${funcName}(${typedParams}): any`;
72
+ changes.push({
73
+ filePath,
74
+ changeType: 'type-annotation',
75
+ description: `Added type annotations to function ${funcName}`,
76
+ before,
77
+ after,
78
+ automated: true,
79
+ confidence: 0.7,
80
+ });
81
+ }
82
+ }
83
+ // Convert var to let/const
84
+ const varPattern = /\bvar\s+(\w+)/g;
85
+ while ((match = varPattern.exec(code)) !== null) {
86
+ changes.push({
87
+ filePath,
88
+ changeType: 'syntax',
89
+ description: 'Converted var to const/let',
90
+ before: `var ${match[1]}`,
91
+ after: `const ${match[1]}`,
92
+ automated: true,
93
+ confidence: 0.9,
94
+ });
95
+ }
96
+ return changes;
97
+ }
98
+ /**
99
+ * Migrate from callbacks to async/await
100
+ */
101
+ async function migrateCallbackToAsync(code, filePath) {
102
+ const changes = [];
103
+ // Detect callback patterns
104
+ const callbackPattern = /(\w+)\s*\([^)]*,\s*function\s*\(([^)]*)\)\s*{([^}]*)}/g;
105
+ let match;
106
+ while ((match = callbackPattern.exec(code)) !== null) {
107
+ const funcName = match[1];
108
+ const params = match[2];
109
+ const body = match[3];
110
+ if (!funcName || !body)
111
+ continue;
112
+ // Convert to async/await
113
+ const before = match[0];
114
+ const after = `const result = await ${funcName}Async();\n// Process: ${body.trim()}`;
115
+ changes.push({
116
+ filePath,
117
+ changeType: 'syntax',
118
+ description: `Converted callback to async/await for ${funcName}`,
119
+ before,
120
+ after,
121
+ automated: false, // Requires manual verification
122
+ confidence: 0.6,
123
+ });
124
+ }
125
+ return changes;
126
+ }
127
+ /**
128
+ * Migrate React class components to functional
129
+ */
130
+ async function migrateReactClassToFunctional(code, filePath) {
131
+ const changes = [];
132
+ // Detect class components
133
+ if (/class\s+\w+\s+extends\s+React\.Component/.test(code)) {
134
+ changes.push({
135
+ filePath,
136
+ changeType: 'structure',
137
+ description: 'Convert class component to functional component with hooks',
138
+ before: code.substring(0, 100) + '...',
139
+ after: '// Converted to functional component\nconst Component = () => {\n // Use useState, useEffect hooks\n}',
140
+ automated: false,
141
+ confidence: 0.5,
142
+ });
143
+ }
144
+ // Convert this.state to useState
145
+ const statePattern = /this\.state\.(\w+)/g;
146
+ let match;
147
+ const stateVars = new Set();
148
+ while ((match = statePattern.exec(code)) !== null) {
149
+ if (match[1]) {
150
+ stateVars.add(match[1]);
151
+ }
152
+ }
153
+ if (stateVars.size > 0) {
154
+ changes.push({
155
+ filePath,
156
+ changeType: 'api',
157
+ description: `Convert ${stateVars.size} state variables to useState hooks`,
158
+ before: `this.state = { ${Array.from(stateVars).join(', ')} }`,
159
+ after: Array.from(stateVars).map(v => `const [${v}, set${v.charAt(0).toUpperCase() + v.slice(1)}] = useState()`).join('\n'),
160
+ automated: false,
161
+ confidence: 0.7,
162
+ });
163
+ }
164
+ return changes;
165
+ }
166
+ /**
167
+ * Migrate CommonJS to ESM
168
+ */
169
+ async function migrateCommonJSToESM(code, filePath) {
170
+ const changes = [];
171
+ // Convert require to import
172
+ const requirePattern = /const\s+(\w+)\s*=\s*require\(['"]([^'"]+)['"]\)/g;
173
+ let match;
174
+ while ((match = requirePattern.exec(code)) !== null) {
175
+ const varName = match[1];
176
+ const modulePath = match[2];
177
+ changes.push({
178
+ filePath,
179
+ changeType: 'import',
180
+ description: 'Convert require to import',
181
+ before: match[0],
182
+ after: `import ${varName} from '${modulePath}'`,
183
+ automated: true,
184
+ confidence: 0.95,
185
+ });
186
+ }
187
+ // Convert module.exports to export
188
+ if (/module\.exports\s*=/.test(code)) {
189
+ changes.push({
190
+ filePath,
191
+ changeType: 'export',
192
+ description: 'Convert module.exports to export default',
193
+ before: 'module.exports = ',
194
+ after: 'export default ',
195
+ automated: true,
196
+ confidence: 0.9,
197
+ });
198
+ }
199
+ return changes;
200
+ }
201
+ /**
202
+ * Detect breaking changes
203
+ */
204
+ function detectBreakingChanges(changes, migrationType) {
205
+ const breakingChanges = [];
206
+ // API changes with low confidence are potential breaking changes
207
+ const riskyChanges = changes.filter(c => c.changeType === 'api' && c.confidence < 0.8);
208
+ for (const change of riskyChanges) {
209
+ breakingChanges.push({
210
+ filePath: change.filePath,
211
+ issue: change.description,
212
+ impact: 'medium',
213
+ manualAction: 'Review and test this change carefully',
214
+ documentation: 'Check official migration guide',
215
+ });
216
+ }
217
+ return breakingChanges;
218
+ }
219
+ // ============================================================================
220
+ // Main Migration Function
221
+ // ============================================================================
222
+ /**
223
+ * Intelligent code migration
224
+ */
225
+ export async function migrateCode(options) {
226
+ const timer = createTimer();
227
+ const { projectPath, migrationType, from, to, files = [], strategy = 'safe', preserveComments = true, createBackup = true, dryRun = false, handleBreakingChanges = true, } = MigrationOptionsSchema.parse(options);
228
+ logger.info({ migrationType, from, to, dryRun }, 'Starting code migration');
229
+ // Collect files to migrate
230
+ const targetFiles = files.length > 0 ? files : [
231
+ join(projectPath, 'src', 'index.ts'),
232
+ ];
233
+ let allChanges = [];
234
+ let filesAnalyzed = 0;
235
+ let filesMigrated = 0;
236
+ let filesSkipped = 0;
237
+ // Process each file
238
+ for (const filePath of targetFiles) {
239
+ try {
240
+ const code = await fs.readFile(filePath, 'utf-8');
241
+ filesAnalyzed++;
242
+ let changes = [];
243
+ // Apply migration strategy
244
+ switch (migrationType) {
245
+ case 'javascript-to-typescript':
246
+ changes = await migrateJSToTS(code, filePath);
247
+ break;
248
+ case 'callback-to-async':
249
+ changes = await migrateCallbackToAsync(code, filePath);
250
+ break;
251
+ case 'class-to-functional':
252
+ changes = await migrateReactClassToFunctional(code, filePath);
253
+ break;
254
+ case 'commonjs-to-esm':
255
+ changes = await migrateCommonJSToESM(code, filePath);
256
+ break;
257
+ default:
258
+ logger.warn({ migrationType }, 'Migration type not yet implemented');
259
+ }
260
+ if (changes.length > 0) {
261
+ allChanges = allChanges.concat(changes);
262
+ filesMigrated++;
263
+ // Apply changes if not dry run
264
+ if (!dryRun && strategy === 'aggressive') {
265
+ let newCode = code;
266
+ for (const change of changes.filter(c => c.automated)) {
267
+ newCode = newCode.replace(change.before, change.after);
268
+ }
269
+ if (createBackup) {
270
+ await fs.writeFile(`${filePath}.backup`, code);
271
+ }
272
+ await fs.writeFile(filePath, newCode);
273
+ }
274
+ }
275
+ else {
276
+ filesSkipped++;
277
+ }
278
+ }
279
+ catch (error) {
280
+ logger.error({ error, filePath }, 'Error processing file');
281
+ filesSkipped++;
282
+ }
283
+ }
284
+ // Detect breaking changes
285
+ const breakingChanges = handleBreakingChanges
286
+ ? detectBreakingChanges(allChanges, migrationType)
287
+ : [];
288
+ // Generate warnings
289
+ const warnings = [];
290
+ if (allChanges.some(c => !c.automated)) {
291
+ warnings.push({
292
+ filePath: 'multiple',
293
+ message: 'Some changes require manual intervention',
294
+ severity: 'warning',
295
+ suggestion: 'Review all changes marked as manual',
296
+ });
297
+ }
298
+ const stats = {
299
+ linesChanged: allChanges.length,
300
+ apiCallsUpdated: allChanges.filter(c => c.changeType === 'api').length,
301
+ dependenciesUpdated: 0,
302
+ testsGenerated: 0,
303
+ backupsCreated: createBackup ? filesMigrated : 0,
304
+ };
305
+ const recommendations = [
306
+ 'Run all tests after migration',
307
+ 'Review breaking changes carefully',
308
+ 'Update documentation to reflect changes',
309
+ 'Consider gradual rollout of migrated code',
310
+ ];
311
+ const migrationTimeMs = timer.elapsed();
312
+ logger.info({
313
+ filesMigrated,
314
+ changesCount: allChanges.length,
315
+ breakingChanges: breakingChanges.length,
316
+ migrationTimeMs
317
+ }, 'Migration completed');
318
+ return {
319
+ success: true,
320
+ migrationType,
321
+ from,
322
+ to,
323
+ filesAnalyzed,
324
+ filesMigrated,
325
+ filesSkipped,
326
+ changes: allChanges,
327
+ breakingChanges,
328
+ warnings,
329
+ stats,
330
+ recommendations,
331
+ migrationTimeMs,
332
+ dryRun,
333
+ };
334
+ }
335
+ // ============================================================================
336
+ // Export
337
+ // ============================================================================
338
+ export default migrateCode;
339
+ //# sourceMappingURL=code-migration.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"code-migration.js","sourceRoot":"","sources":["../../src/tools/code-migration.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,84 @@
1
+ /**
2
+ * Atlas Server - ML-Powered Bug & Performance Prediction
3
+ *
4
+ * Machine Learning based code analysis:
5
+ * - Bug probability prediction
6
+ * - Performance bottleneck detection
7
+ * - Code smell prediction using ML patterns
8
+ * - Maintenance effort estimation
9
+ * - Test coverage prediction
10
+ * - Regression risk analysis
11
+ * - Code churn correlation
12
+ * - Developer productivity insights
13
+ * - Technical debt quantification
14
+ * - Failure prediction based on historical patterns
15
+ *
16
+ * @module ml-predictor
17
+ * @author Nishant Unavane
18
+ * @version 1.0.0
19
+ */
20
+ export interface MLPredictorOptions {
21
+ projectPath: string;
22
+ filePath?: string;
23
+ predictions?: PredictionType[];
24
+ modelType?: 'statistical' | 'llm' | 'hybrid';
25
+ confidenceThreshold?: number;
26
+ gitHistory?: boolean;
27
+ includeMetrics?: boolean;
28
+ }
29
+ export type PredictionType = 'bug-probability' | 'performance-issues' | 'maintenance-effort' | 'test-coverage' | 'regression-risk' | 'technical-debt' | 'code-churn' | 'failure-prediction';
30
+ export interface MLPredictorResult {
31
+ filePath: string;
32
+ predictions: Prediction[];
33
+ overallRisk: RiskLevel;
34
+ confidence: number;
35
+ recommendations: string[];
36
+ features: CodeFeatures;
37
+ analysisTimeMs: number;
38
+ modelUsed: string;
39
+ }
40
+ export interface Prediction {
41
+ type: PredictionType;
42
+ probability: number;
43
+ confidence: number;
44
+ severity: 'low' | 'medium' | 'high' | 'critical';
45
+ explanation: string;
46
+ evidence: Evidence[];
47
+ mitigation: string[];
48
+ }
49
+ export interface Evidence {
50
+ location: {
51
+ line: number;
52
+ column?: number;
53
+ };
54
+ snippet: string;
55
+ reason: string;
56
+ weight: number;
57
+ }
58
+ export type RiskLevel = 'minimal' | 'low' | 'moderate' | 'high' | 'critical';
59
+ export interface CodeFeatures {
60
+ cyclomaticComplexity: number;
61
+ cognitiveComplexity: number;
62
+ linesOfCode: number;
63
+ functionCount: number;
64
+ classCount: number;
65
+ nestingDepth: number;
66
+ commentRatio: number;
67
+ testCoverage: number;
68
+ commitCount: number;
69
+ authorCount: number;
70
+ churnRate: number;
71
+ patterns: DetectedPattern[];
72
+ }
73
+ export interface DetectedPattern {
74
+ name: string;
75
+ type: 'anti-pattern' | 'design-pattern' | 'code-smell';
76
+ confidence: number;
77
+ occurrences: number;
78
+ }
79
+ /**
80
+ * ML-powered code analysis and prediction
81
+ */
82
+ export declare function predictCodeIssues(options: MLPredictorOptions): Promise<MLPredictorResult>;
83
+ export default predictCodeIssues;
84
+ //# sourceMappingURL=ml-predictor.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ml-predictor.d.ts","sourceRoot":"","sources":["../../src/tools/ml-predictor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAYH,MAAM,WAAW,kBAAkB;IACjC,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAGlB,WAAW,CAAC,EAAE,cAAc,EAAE,CAAC;IAG/B,SAAS,CAAC,EAAE,aAAa,GAAG,KAAK,GAAG,QAAQ,CAAC;IAC7C,mBAAmB,CAAC,EAAE,MAAM,CAAC;IAG7B,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,MAAM,cAAc,GACtB,iBAAiB,GACjB,oBAAoB,GACpB,oBAAoB,GACpB,eAAe,GACf,iBAAiB,GACjB,gBAAgB,GAChB,YAAY,GACZ,oBAAoB,CAAC;AAEzB,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,MAAM,CAAC;IACjB,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,WAAW,EAAE,SAAS,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,QAAQ,EAAE,YAAY,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,cAAc,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,UAAU,CAAC;IACjD,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,QAAQ,EAAE,CAAC;IACrB,UAAU,EAAE,MAAM,EAAE,CAAC;CACtB;AAED,MAAM,WAAW,QAAQ;IACvB,QAAQ,EAAE;QAAE,IAAI,EAAE,MAAM,CAAC;QAAC,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE,CAAC;IAC5C,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;IACf,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,MAAM,SAAS,GAAG,SAAS,GAAG,KAAK,GAAG,UAAU,GAAG,MAAM,GAAG,UAAU,CAAC;AAE7E,MAAM,WAAW,YAAY;IAE3B,oBAAoB,EAAE,MAAM,CAAC;IAC7B,mBAAmB,EAAE,MAAM,CAAC;IAC5B,WAAW,EAAE,MAAM,CAAC;IAGpB,aAAa,EAAE,MAAM,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,YAAY,EAAE,MAAM,CAAC;IAGrB,YAAY,EAAE,MAAM,CAAC;IACrB,YAAY,EAAE,MAAM,CAAC;IAGrB,WAAW,EAAE,MAAM,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAGlB,QAAQ,EAAE,eAAe,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,cAAc,GAAG,gBAAgB,GAAG,YAAY,CAAC;IACvD,UAAU,EAAE,MAAM,CAAC;IACnB,WAAW,EAAE,MAAM,CAAC;CACrB;AA2WD;;GAEG;AACH,wBAAsB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,OAAO,CAAC,iBAAiB,CAAC,CAoF/F;AAMD,eAAe,iBAAiB,CAAC"}