atlas-pipeline-mcp 1.0.23 → 1.0.25

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.
Files changed (50) hide show
  1. package/README.md +71 -4
  2. package/dist/common/error-handling.d.ts +86 -0
  3. package/dist/common/error-handling.d.ts.map +1 -0
  4. package/dist/common/error-handling.js +226 -0
  5. package/dist/common/error-handling.js.map +1 -0
  6. package/dist/mcp.js +50 -0
  7. package/dist/mcp.js.map +1 -1
  8. package/dist/tools/api-design-consultant.d.ts +92 -0
  9. package/dist/tools/api-design-consultant.d.ts.map +1 -0
  10. package/dist/tools/api-design-consultant.js +374 -0
  11. package/dist/tools/api-design-consultant.js.map +1 -0
  12. package/dist/tools/debug/error-classifier.d.ts +14 -0
  13. package/dist/tools/debug/error-classifier.d.ts.map +1 -0
  14. package/dist/tools/debug/error-classifier.js +40 -0
  15. package/dist/tools/debug/error-classifier.js.map +1 -0
  16. package/dist/tools/debug/language-detector.d.ts +16 -0
  17. package/dist/tools/debug/language-detector.d.ts.map +1 -0
  18. package/dist/tools/debug/language-detector.js +67 -0
  19. package/dist/tools/debug/language-detector.js.map +1 -0
  20. package/dist/tools/debug/stack-parser.d.ts +25 -0
  21. package/dist/tools/debug/stack-parser.d.ts.map +1 -0
  22. package/dist/tools/debug/stack-parser.js +122 -0
  23. package/dist/tools/debug/stack-parser.js.map +1 -0
  24. package/dist/tools/dependencies.d.ts.map +1 -1
  25. package/dist/tools/dependencies.js +50 -25
  26. package/dist/tools/dependencies.js.map +1 -1
  27. package/dist/tools/performance-optimizer.d.ts +97 -0
  28. package/dist/tools/performance-optimizer.d.ts.map +1 -0
  29. package/dist/tools/performance-optimizer.js +295 -0
  30. package/dist/tools/performance-optimizer.js.map +1 -0
  31. package/dist/tools/security-scanner.d.ts +74 -0
  32. package/dist/tools/security-scanner.d.ts.map +1 -0
  33. package/dist/tools/security-scanner.js +290 -0
  34. package/dist/tools/security-scanner.js.map +1 -0
  35. package/dist/tools/senior-mentor.d.ts +81 -0
  36. package/dist/tools/senior-mentor.d.ts.map +1 -0
  37. package/dist/tools/senior-mentor.js +308 -0
  38. package/dist/tools/senior-mentor.js.map +1 -0
  39. package/dist/tools/state-management-architect.d.ts +77 -0
  40. package/dist/tools/state-management-architect.d.ts.map +1 -0
  41. package/dist/tools/state-management-architect.js +323 -0
  42. package/dist/tools/state-management-architect.js.map +1 -0
  43. package/dist/tools/test-utils.d.ts.map +1 -1
  44. package/dist/tools/test-utils.js +109 -56
  45. package/dist/tools/test-utils.js.map +1 -1
  46. package/dist/tools/ui-ux-designer.d.ts +91 -0
  47. package/dist/tools/ui-ux-designer.d.ts.map +1 -0
  48. package/dist/tools/ui-ux-designer.js +907 -0
  49. package/dist/tools/ui-ux-designer.js.map +1 -0
  50. package/package.json +3 -2
@@ -0,0 +1,92 @@
1
+ /**
2
+ * Atlas Server - API Design Consultant
3
+ *
4
+ * Advanced API design analysis and optimization
5
+ * - RESTful design review
6
+ * - GraphQL vs REST analysis
7
+ * - Error handling patterns
8
+ * - Versioning strategies
9
+ * - Rate limiting and throttling
10
+ * - API documentation generation
11
+ * - Pagination and filtering strategies
12
+ *
13
+ * @module api-design-consultant
14
+ * @author Nishant Unavane
15
+ * @version 1.0.0
16
+ */
17
+ export interface ApiDesignRequest {
18
+ apiType?: 'rest' | 'graphql' | 'grpc' | 'webhook';
19
+ endpoints?: ApiEndpoint[];
20
+ schema?: string;
21
+ errorHandling?: string;
22
+ authentication?: string;
23
+ documentation?: string;
24
+ currentIssues?: string[];
25
+ scalability?: 'low' | 'medium' | 'high' | 'enterprise';
26
+ clientTypes?: string[];
27
+ }
28
+ export interface ApiEndpoint {
29
+ method: string;
30
+ path: string;
31
+ description?: string;
32
+ requestBody?: string;
33
+ responseBody?: string;
34
+ statusCodes?: Record<number, string>;
35
+ rateLimit?: string;
36
+ authentication?: string;
37
+ }
38
+ export interface ApiDesignAnalysis {
39
+ currentDesign: string;
40
+ issues: DesignIssue[];
41
+ recommendations: DesignRecommendation[];
42
+ patterns: RecommendedPattern[];
43
+ errorHandling: ErrorHandlingGuide;
44
+ documentationTemplate: string;
45
+ bestPractices: BestPractice[];
46
+ }
47
+ export interface DesignIssue {
48
+ severity: 'critical' | 'high' | 'medium' | 'low';
49
+ category: string;
50
+ issue: string;
51
+ impact: string;
52
+ affectedEndpoints: string[];
53
+ }
54
+ export interface DesignRecommendation {
55
+ area: string;
56
+ currentPractice: string;
57
+ recommendation: string;
58
+ implementation: string;
59
+ benefit: string;
60
+ effort: string;
61
+ }
62
+ export interface RecommendedPattern {
63
+ pattern: string;
64
+ description: string;
65
+ implementation: string;
66
+ example: string;
67
+ suitability: number;
68
+ }
69
+ export interface ErrorHandlingGuide {
70
+ standardErrorFormat: string;
71
+ statusCodeMapping: Record<number, string>;
72
+ errorResponses: ErrorResponse[];
73
+ retryStrategy: string;
74
+ }
75
+ export interface ErrorResponse {
76
+ status: number;
77
+ type: string;
78
+ meaning: string;
79
+ clientAction: string;
80
+ }
81
+ export interface BestPractice {
82
+ title: string;
83
+ description: string;
84
+ reasoning: string;
85
+ example: string;
86
+ }
87
+ /**
88
+ * Analyze and design API
89
+ */
90
+ export declare function designApi(request: ApiDesignRequest): Promise<ApiDesignAnalysis>;
91
+ export default designApi;
92
+ //# sourceMappingURL=api-design-consultant.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-design-consultant.d.ts","sourceRoot":"","sources":["../../src/tools/api-design-consultant.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;GAeG;AAUH,MAAM,WAAW,gBAAgB;IAC/B,OAAO,CAAC,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,GAAG,SAAS,CAAC;IAClD,SAAS,CAAC,EAAE,WAAW,EAAE,CAAC;IAC1B,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,aAAa,CAAC,EAAE,MAAM,EAAE,CAAC;IACzB,WAAW,CAAC,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,GAAG,YAAY,CAAC;IACvD,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IACrC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAED,MAAM,WAAW,iBAAiB;IAChC,aAAa,EAAE,MAAM,CAAC;IACtB,MAAM,EAAE,WAAW,EAAE,CAAC;IACtB,eAAe,EAAE,oBAAoB,EAAE,CAAC;IACxC,QAAQ,EAAE,kBAAkB,EAAE,CAAC;IAC/B,aAAa,EAAE,kBAAkB,CAAC;IAClC,qBAAqB,EAAE,MAAM,CAAC;IAC9B,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,WAAW;IAC1B,QAAQ,EAAE,UAAU,GAAG,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACjD,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,iBAAiB,EAAE,MAAM,EAAE,CAAC;CAC7B;AAED,MAAM,WAAW,oBAAoB;IACnC,IAAI,EAAE,MAAM,CAAC;IACb,eAAe,EAAE,MAAM,CAAC;IACxB,cAAc,EAAE,MAAM,CAAC;IACvB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,MAAM,EAAE,MAAM,CAAC;CAChB;AAED,MAAM,WAAW,kBAAkB;IACjC,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;IACvB,OAAO,EAAE,MAAM,CAAC;IAChB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,kBAAkB;IACjC,mBAAmB,EAAE,MAAM,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;IAC1C,cAAc,EAAE,aAAa,EAAE,CAAC;IAChC,aAAa,EAAE,MAAM,CAAC;CACvB;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,EAAE,MAAM,CAAC;IACf,IAAI,EAAE,MAAM,CAAC;IACb,OAAO,EAAE,MAAM,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;CACjB;AA+BD;;GAEG;AACH,wBAAsB,SAAS,CAC7B,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,iBAAiB,CAAC,CA4B5B;AAsUD,eAAe,SAAS,CAAC"}
@@ -0,0 +1,374 @@
1
+ /**
2
+ * Atlas Server - API Design Consultant
3
+ *
4
+ * Advanced API design analysis and optimization
5
+ * - RESTful design review
6
+ * - GraphQL vs REST analysis
7
+ * - Error handling patterns
8
+ * - Versioning strategies
9
+ * - Rate limiting and throttling
10
+ * - API documentation generation
11
+ * - Pagination and filtering strategies
12
+ *
13
+ * @module api-design-consultant
14
+ * @author Nishant Unavane
15
+ * @version 1.0.0
16
+ */
17
+ import { logger, createTimer } from '../utils.js';
18
+ import { z } from 'zod';
19
+ // ============================================================================
20
+ // Validation Schema
21
+ // ============================================================================
22
+ const ApiDesignRequestSchema = z.object({
23
+ apiType: z.enum(['rest', 'graphql', 'grpc', 'webhook']).optional(),
24
+ endpoints: z.array(z.object({
25
+ method: z.string(),
26
+ path: z.string(),
27
+ description: z.string().optional(),
28
+ requestBody: z.string().optional(),
29
+ responseBody: z.string().optional(),
30
+ statusCodes: z.record(z.number(), z.string()).optional(),
31
+ rateLimit: z.string().optional(),
32
+ authentication: z.string().optional(),
33
+ })).optional(),
34
+ schema: z.string().optional(),
35
+ errorHandling: z.string().optional(),
36
+ authentication: z.string().optional(),
37
+ documentation: z.string().optional(),
38
+ currentIssues: z.array(z.string()).optional(),
39
+ scalability: z.enum(['low', 'medium', 'high', 'enterprise']).optional(),
40
+ clientTypes: z.array(z.string()).optional(),
41
+ });
42
+ // ============================================================================
43
+ // Analysis
44
+ // ============================================================================
45
+ /**
46
+ * Analyze and design API
47
+ */
48
+ export async function designApi(request) {
49
+ const timer = createTimer();
50
+ ApiDesignRequestSchema.parse(request);
51
+ logger.info({ apiType: request.apiType, endpointCount: request.endpoints?.length }, 'Starting API design analysis');
52
+ const issues = identifyDesignIssues(request);
53
+ const recommendations = generateDesignRecommendations(request);
54
+ const patterns = getRecommendedPatterns(request);
55
+ const errorGuide = createErrorHandlingGuide(request);
56
+ const docTemplate = generateDocumentationTemplate(request);
57
+ const bestPractices = getBestPractices(request);
58
+ logger.info({ timeMs: timer.elapsed() }, 'API design analysis complete');
59
+ return {
60
+ currentDesign: request.apiType || 'Not specified',
61
+ issues,
62
+ recommendations,
63
+ patterns,
64
+ errorHandling: errorGuide,
65
+ documentationTemplate: docTemplate,
66
+ bestPractices,
67
+ };
68
+ }
69
+ /**
70
+ * Identify API design issues
71
+ */
72
+ function identifyDesignIssues(request) {
73
+ const issues = [];
74
+ if (request.endpoints) {
75
+ for (const endpoint of request.endpoints) {
76
+ if (!endpoint.authentication) {
77
+ issues.push({
78
+ severity: 'critical',
79
+ category: 'Security',
80
+ issue: `Endpoint ${endpoint.path} has no authentication`,
81
+ impact: 'Unauthorized access, data exposure',
82
+ affectedEndpoints: [endpoint.path],
83
+ });
84
+ }
85
+ if (endpoint.method === 'GET' && endpoint.path.includes('delete')) {
86
+ issues.push({
87
+ severity: 'high',
88
+ category: 'RESTful Design',
89
+ issue: `GET method used for delete operation (${endpoint.path})`,
90
+ impact: 'Violates REST principles, can cause accidental deletions',
91
+ affectedEndpoints: [endpoint.path],
92
+ });
93
+ }
94
+ if (!endpoint.statusCodes || Object.keys(endpoint.statusCodes).length === 0) {
95
+ issues.push({
96
+ severity: 'medium',
97
+ category: 'Documentation',
98
+ issue: `No status codes documented for ${endpoint.path}`,
99
+ impact: 'Clients unclear on possible responses',
100
+ affectedEndpoints: [endpoint.path],
101
+ });
102
+ }
103
+ }
104
+ }
105
+ if (request.errorHandling?.toLowerCase().includes('generic error')) {
106
+ issues.push({
107
+ severity: 'high',
108
+ category: 'Error Handling',
109
+ issue: 'Generic error messages without context',
110
+ impact: 'Difficult for clients to handle errors appropriately',
111
+ affectedEndpoints: ['All'],
112
+ });
113
+ }
114
+ if (!request.documentation) {
115
+ issues.push({
116
+ severity: 'medium',
117
+ category: 'Documentation',
118
+ issue: 'No API documentation',
119
+ impact: 'Slow onboarding, inconsistent client implementations',
120
+ affectedEndpoints: ['All'],
121
+ });
122
+ }
123
+ return issues;
124
+ }
125
+ /**
126
+ * Generate API design recommendations
127
+ */
128
+ function generateDesignRecommendations(request) {
129
+ return [
130
+ {
131
+ area: 'Consistency',
132
+ currentPractice: 'Inconsistent endpoint naming',
133
+ recommendation: 'Use consistent kebab-case for all endpoints',
134
+ implementation: '/api/v1/user-profiles instead of /api/v1/userprofiles',
135
+ benefit: 'Easy to predict endpoints, better DX',
136
+ effort: '2-4 hours',
137
+ },
138
+ {
139
+ area: 'Pagination',
140
+ currentPractice: 'No pagination strategy',
141
+ recommendation: 'Implement cursor or offset-based pagination',
142
+ implementation: 'Use ?page=1&limit=20 or ?cursor=abc&limit=20',
143
+ benefit: 'Scalability, reduced server load',
144
+ effort: '4-8 hours',
145
+ },
146
+ {
147
+ area: 'Versioning',
148
+ currentPractice: 'No versioning strategy',
149
+ recommendation: 'Use URL-based versioning: /api/v1/, /api/v2/',
150
+ implementation: 'Include major version in URL path',
151
+ benefit: 'Backward compatibility, smooth transitions',
152
+ effort: '1-2 weeks',
153
+ },
154
+ {
155
+ area: 'Error Handling',
156
+ currentPractice: 'Inconsistent error formats',
157
+ recommendation: 'Standardize error response format',
158
+ implementation: '{ "error": { "code": "INVALID_INPUT", "message": "..." } }',
159
+ benefit: 'Predictable client error handling',
160
+ effort: '4-6 hours',
161
+ },
162
+ {
163
+ area: 'Rate Limiting',
164
+ currentPractice: 'No rate limiting',
165
+ recommendation: 'Implement rate limiting per IP/user',
166
+ implementation: 'Add RateLimit-Limit, RateLimit-Remaining headers',
167
+ benefit: 'Prevent abuse, fair usage',
168
+ effort: '4-8 hours',
169
+ },
170
+ {
171
+ area: 'Caching',
172
+ currentPractice: 'No caching headers',
173
+ recommendation: 'Add cache-control headers',
174
+ implementation: 'Cache-Control: max-age=3600, public',
175
+ benefit: '40-60% reduction in server load',
176
+ effort: '2-4 hours',
177
+ },
178
+ ];
179
+ }
180
+ /**
181
+ * Get recommended patterns
182
+ */
183
+ function getRecommendedPatterns(request) {
184
+ const patterns = [];
185
+ // REST patterns
186
+ if (request.apiType === 'rest' || !request.apiType) {
187
+ patterns.push({
188
+ pattern: 'Resource-Oriented Design',
189
+ description: 'Design endpoints around resources, not actions',
190
+ implementation: 'POST /api/v1/users (create), GET /api/v1/users/:id (read)',
191
+ example: 'POST /api/v1/orders, GET /api/v1/orders/:id, DELETE /api/v1/orders/:id',
192
+ suitability: 9,
193
+ });
194
+ patterns.push({
195
+ pattern: 'HATEOAS',
196
+ description: 'Include links to related resources in responses',
197
+ implementation: 'Response includes _links with next, prev, self',
198
+ example: '{ "data": {...}, "_links": { "self": "/api/v1/users/1", "posts": "/api/v1/users/1/posts" } }',
199
+ suitability: 7,
200
+ });
201
+ }
202
+ // GraphQL patterns
203
+ if (request.apiType === 'graphql') {
204
+ patterns.push({
205
+ pattern: 'Efficient Data Fetching',
206
+ description: 'Clients request only needed fields',
207
+ implementation: 'Query { user { name email } }',
208
+ example: 'Reduces payload by 30-50% compared to REST',
209
+ suitability: 10,
210
+ });
211
+ patterns.push({
212
+ pattern: 'Batch Loading',
213
+ description: 'Prevent N+1 query problems with DataLoaders',
214
+ implementation: 'Use facebook/dataloader or similar',
215
+ example: 'Single query resolves multiple related objects efficiently',
216
+ suitability: 9,
217
+ });
218
+ }
219
+ // General patterns
220
+ patterns.push({
221
+ pattern: 'API Key & OAuth2',
222
+ description: 'Secure authentication for different client types',
223
+ implementation: 'API Key for simple auth, OAuth2 for delegation',
224
+ example: 'Authorization: Bearer eyJhbGciOiJIUzI1NiIs...',
225
+ suitability: 10,
226
+ });
227
+ patterns.push({
228
+ pattern: 'Async Operations',
229
+ description: 'Handle long-running operations with polling or webhooks',
230
+ implementation: 'Return 202 Accepted, provide status endpoint',
231
+ example: 'POST /api/v1/exports returns location to check status',
232
+ suitability: 8,
233
+ });
234
+ return patterns;
235
+ }
236
+ /**
237
+ * Create error handling guide
238
+ */
239
+ function createErrorHandlingGuide(request) {
240
+ return {
241
+ standardErrorFormat: `{
242
+ "error": {
243
+ "code": "ERROR_CODE",
244
+ "message": "Human readable message",
245
+ "details": "Additional context",
246
+ "timestamp": "2024-01-15T10:30:00Z",
247
+ "request_id": "req-123"
248
+ }
249
+ }`,
250
+ statusCodeMapping: {
251
+ 200: 'OK - Request succeeded',
252
+ 201: 'Created - Resource created',
253
+ 204: 'No Content - Success, no body',
254
+ 400: 'Bad Request - Client error',
255
+ 401: 'Unauthorized - Authentication required',
256
+ 403: 'Forbidden - Insufficient permissions',
257
+ 404: 'Not Found - Resource not found',
258
+ 429: 'Too Many Requests - Rate limited',
259
+ 500: 'Internal Server Error - Server error',
260
+ 503: 'Service Unavailable - Maintenance',
261
+ },
262
+ errorResponses: [
263
+ {
264
+ status: 400,
265
+ type: 'INVALID_INPUT',
266
+ meaning: 'Request body or parameters invalid',
267
+ clientAction: 'Validate input and retry',
268
+ },
269
+ {
270
+ status: 401,
271
+ type: 'UNAUTHORIZED',
272
+ meaning: 'Authentication failed or missing',
273
+ clientAction: 'Prompt user to login',
274
+ },
275
+ {
276
+ status: 429,
277
+ type: 'RATE_LIMITED',
278
+ meaning: 'Too many requests',
279
+ clientAction: 'Wait and retry with exponential backoff',
280
+ },
281
+ {
282
+ status: 500,
283
+ type: 'SERVER_ERROR',
284
+ meaning: 'Unexpected server error',
285
+ clientAction: 'Retry later or contact support',
286
+ },
287
+ ],
288
+ retryStrategy: `Implement exponential backoff:
289
+ 1st attempt: immediately
290
+ 2nd attempt: after 1 second
291
+ 3rd attempt: after 2 seconds
292
+ 4th attempt: after 4 seconds
293
+ Max retries: 5`,
294
+ };
295
+ }
296
+ /**
297
+ * Generate documentation template
298
+ */
299
+ function generateDocumentationTemplate(request) {
300
+ return `# API Documentation
301
+
302
+ ## Overview
303
+ Brief description of the API and its purpose.
304
+
305
+ ## Authentication
306
+ Explain authentication method (API Key, OAuth2, JWT, etc.)
307
+
308
+ ## Base URL
309
+ \`https://api.example.com/v1\`
310
+
311
+ ## Rate Limiting
312
+ - Requests per minute: 60
313
+ - Rate limit headers: X-RateLimit-Limit, X-RateLimit-Remaining
314
+
315
+ ## Endpoints
316
+
317
+ ### Users
318
+ - POST /users - Create user
319
+ - GET /users - List users
320
+ - GET /users/:id - Get user
321
+ - PATCH /users/:id - Update user
322
+ - DELETE /users/:id - Delete user
323
+
324
+ ## Error Handling
325
+ Standard error format and common status codes.
326
+
327
+ ## Best Practices
328
+ - Always include request ID for debugging
329
+ - Use pagination for large datasets
330
+ - Implement retry logic with exponential backoff
331
+ - Cache responses where appropriate`;
332
+ }
333
+ /**
334
+ * Get API best practices
335
+ */
336
+ function getBestPractices(request) {
337
+ return [
338
+ {
339
+ title: 'Use Semantic HTTP Status Codes',
340
+ description: 'Use appropriate 2xx, 4xx, and 5xx status codes',
341
+ reasoning: 'Clients can handle responses appropriately without parsing body',
342
+ example: '201 Created for successful POST, 400 Bad Request for validation errors',
343
+ },
344
+ {
345
+ title: 'Include Request IDs',
346
+ description: 'Return unique request ID in response headers',
347
+ reasoning: 'Essential for debugging and tracing requests across systems',
348
+ example: 'X-Request-ID: req-abc123-xyz789',
349
+ },
350
+ {
351
+ title: 'Implement Pagination',
352
+ description: 'Always paginate large datasets',
353
+ reasoning: 'Prevents server overload and improves response times',
354
+ example: '?page=2&limit=50 or ?cursor=abc&limit=50',
355
+ },
356
+ {
357
+ title: 'Version Your API',
358
+ description: 'Include version in URL path',
359
+ reasoning: 'Allows breaking changes without disrupting existing clients',
360
+ example: '/api/v1/, /api/v2/',
361
+ },
362
+ {
363
+ title: 'Provide Clear Error Messages',
364
+ description: 'Include error code and actionable message',
365
+ reasoning: 'Helps developers fix issues quickly',
366
+ example: '{ "error": { "code": "INVALID_EMAIL", "message": "Email format invalid" } }',
367
+ },
368
+ ];
369
+ }
370
+ // ============================================================================
371
+ // Export
372
+ // ============================================================================
373
+ export default designApi;
374
+ //# sourceMappingURL=api-design-consultant.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"api-design-consultant.js","sourceRoot":"","sources":["../../src/tools/api-design-consultant.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,14 @@
1
+ /**
2
+ * Error Classification Module
3
+ * Classifies errors into specific types based on patterns
4
+ */
5
+ export type ErrorType = 'syntax' | 'type' | 'reference' | 'runtime' | 'async' | 'network' | 'memory' | 'logic' | 'configuration' | 'dependency' | 'permission' | 'unknown';
6
+ /**
7
+ * Classify error based on content
8
+ */
9
+ export declare function classifyError(error: string, stackTrace?: string): ErrorType;
10
+ /**
11
+ * Check if error matches specific type
12
+ */
13
+ export declare function isErrorType(content: string, type: ErrorType): boolean;
14
+ //# sourceMappingURL=error-classifier.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-classifier.d.ts","sourceRoot":"","sources":["../../../src/tools/debug/error-classifier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,MAAM,MAAM,SAAS,GACjB,QAAQ,GACR,MAAM,GACN,WAAW,GACX,SAAS,GACT,OAAO,GACP,SAAS,GACT,QAAQ,GACR,OAAO,GACP,eAAe,GACf,YAAY,GACZ,YAAY,GACZ,SAAS,CAAC;AAkBd;;GAEG;AACH,wBAAgB,aAAa,CAAC,KAAK,EAAE,MAAM,EAAE,UAAU,GAAE,MAAW,GAAG,SAAS,CAU/E;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,SAAS,GAAG,OAAO,CAIrE"}
@@ -0,0 +1,40 @@
1
+ /**
2
+ * Error Classification Module
3
+ * Classifies errors into specific types based on patterns
4
+ */
5
+ // Error pattern mappings
6
+ const ERROR_PATTERNS = {
7
+ syntax: ['syntaxerror', 'unexpected token', 'parsing error', 'invalid syntax'],
8
+ type: ['typeerror', 'is not a function', 'cannot read property', 'undefined is not'],
9
+ reference: ['referenceerror', 'is not defined', 'cannot access'],
10
+ runtime: ['rangeerror', 'maximum call stack', 'out of bounds'],
11
+ async: ['promise', 'async', 'await', 'timeout', 'uncaught (in promise)'],
12
+ network: ['network', 'fetch', 'xhr', 'cors', 'http', 'econnrefused', 'timeout'],
13
+ memory: ['memory', 'heap', 'allocation failed', 'out of memory'],
14
+ logic: ['assertion', 'expected', 'actual'],
15
+ configuration: ['config', 'environment', 'missing', 'not found'],
16
+ dependency: ['module', 'import', 'require', 'cannot find'],
17
+ permission: ['permission', 'denied', 'forbidden', 'unauthorized', 'eacces'],
18
+ unknown: [], // Catch-all for unclassified errors
19
+ };
20
+ /**
21
+ * Classify error based on content
22
+ */
23
+ export function classifyError(error, stackTrace = '') {
24
+ const content = `${error} ${stackTrace}`.toLowerCase();
25
+ for (const [errorType, patterns] of Object.entries(ERROR_PATTERNS)) {
26
+ if (patterns.some(pattern => content.includes(pattern))) {
27
+ return errorType;
28
+ }
29
+ }
30
+ return 'unknown';
31
+ }
32
+ /**
33
+ * Check if error matches specific type
34
+ */
35
+ export function isErrorType(content, type) {
36
+ const patterns = ERROR_PATTERNS[type] || [];
37
+ const normalized = content.toLowerCase();
38
+ return patterns.some(pattern => normalized.includes(pattern));
39
+ }
40
+ //# sourceMappingURL=error-classifier.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"error-classifier.js","sourceRoot":"","sources":["../../../src/tools/debug/error-classifier.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAgBH,yBAAyB;AACzB,MAAM,cAAc,GAAgC;IAClD,MAAM,EAAE,CAAC,aAAa,EAAE,kBAAkB,EAAE,eAAe,EAAE,gBAAgB,CAAC;IAC9E,IAAI,EAAE,CAAC,WAAW,EAAE,mBAAmB,EAAE,sBAAsB,EAAE,kBAAkB,CAAC;IACpF,SAAS,EAAE,CAAC,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,CAAC;IAChE,OAAO,EAAE,CAAC,YAAY,EAAE,oBAAoB,EAAE,eAAe,CAAC;IAC9D,KAAK,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,OAAO,EAAE,SAAS,EAAE,uBAAuB,CAAC;IACxE,OAAO,EAAE,CAAC,SAAS,EAAE,OAAO,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,cAAc,EAAE,SAAS,CAAC;IAC/E,MAAM,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,mBAAmB,EAAE,eAAe,CAAC;IAChE,KAAK,EAAE,CAAC,WAAW,EAAE,UAAU,EAAE,QAAQ,CAAC;IAC1C,aAAa,EAAE,CAAC,QAAQ,EAAE,aAAa,EAAE,SAAS,EAAE,WAAW,CAAC;IAChE,UAAU,EAAE,CAAC,QAAQ,EAAE,QAAQ,EAAE,SAAS,EAAE,aAAa,CAAC;IAC1D,UAAU,EAAE,CAAC,YAAY,EAAE,QAAQ,EAAE,WAAW,EAAE,cAAc,EAAE,QAAQ,CAAC;IAC3E,OAAO,EAAE,EAAE,EAAE,oCAAoC;CAClD,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,aAAa,CAAC,KAAa,EAAE,aAAqB,EAAE;IAClE,MAAM,OAAO,GAAG,GAAG,KAAK,IAAI,UAAU,EAAE,CAAC,WAAW,EAAE,CAAC;IAEvD,KAAK,MAAM,CAAC,SAAS,EAAE,QAAQ,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,cAAc,CAAC,EAAE,CAAC;QACnE,IAAI,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,OAAO,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,EAAE,CAAC;YACxD,OAAO,SAAsB,CAAC;QAChC,CAAC;IACH,CAAC;IAED,OAAO,SAAS,CAAC;AACnB,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,OAAe,EAAE,IAAe;IAC1D,MAAM,QAAQ,GAAG,cAAc,CAAC,IAAI,CAAC,IAAI,EAAE,CAAC;IAC5C,MAAM,UAAU,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;IACzC,OAAO,QAAQ,CAAC,IAAI,CAAC,OAAO,CAAC,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,OAAO,CAAC,CAAC,CAAC;AAChE,CAAC"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Language and Framework Detection Module
3
+ */
4
+ /**
5
+ * Detect programming language from content
6
+ */
7
+ export declare function detectLanguage(content: string): string;
8
+ /**
9
+ * Detect framework from content
10
+ */
11
+ export declare function detectFramework(content: string): string | undefined;
12
+ /**
13
+ * Get language file extensions
14
+ */
15
+ export declare function getLanguageExtensions(language: string): string[];
16
+ //# sourceMappingURL=language-detector.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language-detector.d.ts","sourceRoot":"","sources":["../../../src/tools/debug/language-detector.ts"],"names":[],"mappings":"AAAA;;GAEG;AA4BH;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOtD;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,SAAS,CAOnE;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,EAAE,CAchE"}
@@ -0,0 +1,67 @@
1
+ /**
2
+ * Language and Framework Detection Module
3
+ */
4
+ // Language detection patterns
5
+ const LANGUAGE_PATTERNS = {
6
+ JavaScript: [/\.js/, /node/, /function\s*\(/, /=>\s*{/, /require\(/],
7
+ TypeScript: [/\.ts/, /interface\s+/, /type\s+/, /<[A-Z]/],
8
+ Python: [/\.py/, /def\s+/, /import\s+/, /from\s+.+\s+import/],
9
+ Java: [/\.java/, /public\s+class/, /public\s+static/, /System\.out/],
10
+ 'C#': [/\.cs/, /using\s+System/, /public\s+class/, /namespace\s+/],
11
+ Go: [/\.go/, /func\s+/, /package\s+main/, /import\s+\(/],
12
+ Rust: [/\.rs/, /fn\s+/, /let\s+mut/, /impl\s+/],
13
+ Ruby: [/\.rb/, /def\s+/, /end\s*$/, /require\s+/],
14
+ PHP: [/\.php/, /<\?php/, /function\s+/, /\$\w+/],
15
+ };
16
+ // Framework detection patterns
17
+ const FRAMEWORK_PATTERNS = {
18
+ React: [/react/, /jsx/, /useState/, /useEffect/, /Component/],
19
+ Vue: [/vue/, /\.vue/, /@vue/, /v-if/, /v-for/],
20
+ Angular: [/angular/, /@angular/, /@Component/, /ngOnInit/],
21
+ Express: [/express/, /app\.get/, /app\.post/, /req\./, /res\./],
22
+ Django: [/django/, /models\.Model/, /render\(/, /HttpResponse/],
23
+ Flask: [/flask/, /from flask/, /@app\.route/],
24
+ 'Spring Boot': [/springframework/, /@SpringBootApplication/, /@RestController/],
25
+ 'ASP.NET': [/System\.Web/, /Controller/, /ActionResult/],
26
+ 'Next.js': [/next/, /getServerSideProps/, /getStaticProps/],
27
+ };
28
+ /**
29
+ * Detect programming language from content
30
+ */
31
+ export function detectLanguage(content) {
32
+ for (const [language, patterns] of Object.entries(LANGUAGE_PATTERNS)) {
33
+ if (patterns.some(pattern => pattern.test(content))) {
34
+ return language;
35
+ }
36
+ }
37
+ return 'Unknown';
38
+ }
39
+ /**
40
+ * Detect framework from content
41
+ */
42
+ export function detectFramework(content) {
43
+ for (const [framework, patterns] of Object.entries(FRAMEWORK_PATTERNS)) {
44
+ if (patterns.some(pattern => pattern.test(content))) {
45
+ return framework;
46
+ }
47
+ }
48
+ return undefined;
49
+ }
50
+ /**
51
+ * Get language file extensions
52
+ */
53
+ export function getLanguageExtensions(language) {
54
+ const extensions = {
55
+ JavaScript: ['.js', '.jsx', '.mjs'],
56
+ TypeScript: ['.ts', '.tsx'],
57
+ Python: ['.py'],
58
+ Java: ['.java'],
59
+ 'C#': ['.cs'],
60
+ Go: ['.go'],
61
+ Rust: ['.rs'],
62
+ Ruby: ['.rb'],
63
+ PHP: ['.php'],
64
+ };
65
+ return extensions[language] || [];
66
+ }
67
+ //# sourceMappingURL=language-detector.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"language-detector.js","sourceRoot":"","sources":["../../../src/tools/debug/language-detector.ts"],"names":[],"mappings":"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"}