atlas-pipeline-mcp 1.0.23 → 1.0.26
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/README.md +117 -4
- package/dist/common/error-handling.d.ts +86 -0
- package/dist/common/error-handling.d.ts.map +1 -0
- package/dist/common/error-handling.js +226 -0
- package/dist/common/error-handling.js.map +1 -0
- package/dist/mcp.js +232 -0
- package/dist/mcp.js.map +1 -1
- package/dist/tools/animation-studio.d.ts +83 -0
- package/dist/tools/animation-studio.d.ts.map +1 -0
- package/dist/tools/animation-studio.js +1064 -0
- package/dist/tools/animation-studio.js.map +1 -0
- package/dist/tools/api-design-consultant.d.ts +92 -0
- package/dist/tools/api-design-consultant.d.ts.map +1 -0
- package/dist/tools/api-design-consultant.js +374 -0
- package/dist/tools/api-design-consultant.js.map +1 -0
- package/dist/tools/api-integration-helper.d.ts +141 -0
- package/dist/tools/api-integration-helper.d.ts.map +1 -0
- package/dist/tools/api-integration-helper.js +907 -0
- package/dist/tools/api-integration-helper.js.map +1 -0
- package/dist/tools/css-architecture-wizard.d.ts +86 -0
- package/dist/tools/css-architecture-wizard.d.ts.map +1 -0
- package/dist/tools/css-architecture-wizard.js +790 -0
- package/dist/tools/css-architecture-wizard.js.map +1 -0
- package/dist/tools/debug/error-classifier.d.ts +14 -0
- package/dist/tools/debug/error-classifier.d.ts.map +1 -0
- package/dist/tools/debug/error-classifier.js +40 -0
- package/dist/tools/debug/error-classifier.js.map +1 -0
- package/dist/tools/debug/language-detector.d.ts +16 -0
- package/dist/tools/debug/language-detector.d.ts.map +1 -0
- package/dist/tools/debug/language-detector.js +67 -0
- package/dist/tools/debug/language-detector.js.map +1 -0
- package/dist/tools/debug/stack-parser.d.ts +25 -0
- package/dist/tools/debug/stack-parser.d.ts.map +1 -0
- package/dist/tools/debug/stack-parser.js +122 -0
- package/dist/tools/debug/stack-parser.js.map +1 -0
- package/dist/tools/dependencies.d.ts.map +1 -1
- package/dist/tools/dependencies.js +50 -25
- package/dist/tools/dependencies.js.map +1 -1
- package/dist/tools/frontend-performance-doctor.d.ts +108 -0
- package/dist/tools/frontend-performance-doctor.d.ts.map +1 -0
- package/dist/tools/frontend-performance-doctor.js +731 -0
- package/dist/tools/frontend-performance-doctor.js.map +1 -0
- package/dist/tools/performance-optimizer.d.ts +97 -0
- package/dist/tools/performance-optimizer.d.ts.map +1 -0
- package/dist/tools/performance-optimizer.js +295 -0
- package/dist/tools/performance-optimizer.js.map +1 -0
- package/dist/tools/security-scanner.d.ts +74 -0
- package/dist/tools/security-scanner.d.ts.map +1 -0
- package/dist/tools/security-scanner.js +290 -0
- package/dist/tools/security-scanner.js.map +1 -0
- package/dist/tools/senior-mentor.d.ts +81 -0
- package/dist/tools/senior-mentor.d.ts.map +1 -0
- package/dist/tools/senior-mentor.js +308 -0
- package/dist/tools/senior-mentor.js.map +1 -0
- package/dist/tools/state-management-architect.d.ts +77 -0
- package/dist/tools/state-management-architect.d.ts.map +1 -0
- package/dist/tools/state-management-architect.js +323 -0
- package/dist/tools/state-management-architect.js.map +1 -0
- package/dist/tools/test-utils.d.ts.map +1 -1
- package/dist/tools/test-utils.js +109 -56
- package/dist/tools/test-utils.js.map +1 -1
- package/dist/tools/ui-ux-designer.d.ts +91 -0
- package/dist/tools/ui-ux-designer.d.ts.map +1 -0
- package/dist/tools/ui-ux-designer.js +907 -0
- package/dist/tools/ui-ux-designer.js.map +1 -0
- package/package.json +3 -2
|
@@ -0,0 +1,290 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Server - Advanced Security & Vulnerability Scanner\n *
|
|
3
|
+
* Enterprise-grade security analysis for frontend applications
|
|
4
|
+
* - Dependency vulnerability scanning
|
|
5
|
+
* - Code-level security vulnerabilities
|
|
6
|
+
* - XSS/CSRF/Injection prevention
|
|
7
|
+
* - Authentication/Authorization issues
|
|
8
|
+
* - API security recommendations
|
|
9
|
+
* - Data exposure risks
|
|
10
|
+
*
|
|
11
|
+
* @module security-scanner
|
|
12
|
+
* @author Nishant Unavane
|
|
13
|
+
* @version 1.0.0
|
|
14
|
+
*/
|
|
15
|
+
import { getActiveProvider, isNoLLMMode } from '../providers/index.js';
|
|
16
|
+
import { logger, createTimer } from '../utils.js';
|
|
17
|
+
import { z } from 'zod';
|
|
18
|
+
// ============================================================================
|
|
19
|
+
// Validation Schema
|
|
20
|
+
// ============================================================================
|
|
21
|
+
const SecurityScanRequestSchema = z.object({
|
|
22
|
+
codeBase: z.string().optional(),
|
|
23
|
+
dependencies: z.array(z.string()).optional(),
|
|
24
|
+
apiEndpoints: z.array(z.object({
|
|
25
|
+
method: z.string(),
|
|
26
|
+
path: z.string(),
|
|
27
|
+
authentication: z.string(),
|
|
28
|
+
inputValidation: z.string().optional(),
|
|
29
|
+
rateLimit: z.string().optional(),
|
|
30
|
+
})).optional(),
|
|
31
|
+
authMethod: z.string().optional(),
|
|
32
|
+
dataHandling: z.string().optional(),
|
|
33
|
+
frameworks: z.array(z.string()).optional(),
|
|
34
|
+
environmentVariables: z.array(z.string()).optional(),
|
|
35
|
+
});
|
|
36
|
+
// ============================================================================
|
|
37
|
+
// Security Scanning
|
|
38
|
+
// ============================================================================
|
|
39
|
+
/**
|
|
40
|
+
* Perform comprehensive security scan
|
|
41
|
+
*/
|
|
42
|
+
export async function scanSecurity(request) {
|
|
43
|
+
const timer = createTimer();
|
|
44
|
+
SecurityScanRequestSchema.parse(request);
|
|
45
|
+
logger.info({ frameworks: request.frameworks }, 'Starting security scan');
|
|
46
|
+
const vulnerabilities = await findVulnerabilities(request);
|
|
47
|
+
const riskScore = calculateRiskScore(vulnerabilities);
|
|
48
|
+
const recommendations = generateRecommendations(vulnerabilities, request);
|
|
49
|
+
const compliance = assessCompliance(request);
|
|
50
|
+
logger.info({ vulnerabilityCount: vulnerabilities.length, riskScore, timeMs: timer.elapsed() }, 'Security scan complete');
|
|
51
|
+
return {
|
|
52
|
+
vulnerabilities,
|
|
53
|
+
riskScore,
|
|
54
|
+
riskLevel: riskScore >= 80 ? 'critical'
|
|
55
|
+
: riskScore >= 60 ? 'high'
|
|
56
|
+
: riskScore >= 40 ? 'medium'
|
|
57
|
+
: 'low',
|
|
58
|
+
summary: generateScanSummary(vulnerabilities),
|
|
59
|
+
recommendations,
|
|
60
|
+
complianceStatus: compliance,
|
|
61
|
+
generatedAt: new Date().toISOString(),
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
/**
|
|
65
|
+
* Find vulnerabilities in codebase
|
|
66
|
+
*/
|
|
67
|
+
async function findVulnerabilities(request) {
|
|
68
|
+
if (!isNoLLMMode()) {
|
|
69
|
+
try {
|
|
70
|
+
return await scanWithAI(request);
|
|
71
|
+
}
|
|
72
|
+
catch (error) {
|
|
73
|
+
logger.warn({ error }, 'AI scan failed, using heuristic scanning');
|
|
74
|
+
return heuristicScan(request);
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
return heuristicScan(request);
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* AI-powered security scanning
|
|
81
|
+
*/
|
|
82
|
+
async function scanWithAI(request) {
|
|
83
|
+
const provider = await getActiveProvider();
|
|
84
|
+
const prompt = `You are a senior security engineer. Scan this frontend application for vulnerabilities:
|
|
85
|
+
|
|
86
|
+
${request.codeBase ? `Code:\n${request.codeBase}` : ''}
|
|
87
|
+
${request.frameworks?.length ? `Frameworks: ${request.frameworks.join(', ')}` : ''}
|
|
88
|
+
${request.authMethod ? `Auth: ${request.authMethod}` : ''}
|
|
89
|
+
${request.dataHandling ? `Data Handling: ${request.dataHandling}` : ''}
|
|
90
|
+
|
|
91
|
+
Identify:
|
|
92
|
+
1. XSS vulnerabilities
|
|
93
|
+
2. CSRF issues
|
|
94
|
+
3. Injection attacks
|
|
95
|
+
4. Insecure authentication
|
|
96
|
+
5. Data exposure risks
|
|
97
|
+
6. API security issues
|
|
98
|
+
7. Dependency vulnerabilities
|
|
99
|
+
|
|
100
|
+
For each, provide:
|
|
101
|
+
- Severity level
|
|
102
|
+
- Impact
|
|
103
|
+
- Remediation steps
|
|
104
|
+
- Exploitability`;
|
|
105
|
+
const result = await provider.completeJson(prompt);
|
|
106
|
+
return result.data || [];
|
|
107
|
+
}
|
|
108
|
+
/**
|
|
109
|
+
* Heuristic security scanning
|
|
110
|
+
*/
|
|
111
|
+
function heuristicScan(request) {
|
|
112
|
+
const vulnerabilities = [];
|
|
113
|
+
// Check for common vulnerabilities
|
|
114
|
+
if (request.codeBase) {
|
|
115
|
+
if (request.codeBase.includes('innerHTML') && !request.codeBase.includes('DOMPurify')) {
|
|
116
|
+
vulnerabilities.push({
|
|
117
|
+
id: 'XSS-001',
|
|
118
|
+
title: 'Potential XSS via innerHTML',
|
|
119
|
+
severity: 'high',
|
|
120
|
+
type: 'xss',
|
|
121
|
+
description: 'Using innerHTML without sanitization can lead to XSS attacks',
|
|
122
|
+
affectedArea: 'HTML rendering',
|
|
123
|
+
impact: 'Attackers can execute arbitrary JavaScript in user browsers',
|
|
124
|
+
remediation: 'Use textContent instead or use DOMPurify for sanitization',
|
|
125
|
+
exploitability: 'high',
|
|
126
|
+
});
|
|
127
|
+
}
|
|
128
|
+
if (request.codeBase.includes('eval(') || request.codeBase.includes('Function(')) {
|
|
129
|
+
vulnerabilities.push({
|
|
130
|
+
id: 'INJ-001',
|
|
131
|
+
title: 'Code Injection via eval()',
|
|
132
|
+
severity: 'critical',
|
|
133
|
+
type: 'injection',
|
|
134
|
+
description: 'Using eval() is extremely dangerous',
|
|
135
|
+
affectedArea: 'Dynamic code execution',
|
|
136
|
+
impact: 'Complete application compromise',
|
|
137
|
+
remediation: 'Never use eval(). Use JSON.parse() or alternatives.',
|
|
138
|
+
exploitability: 'high',
|
|
139
|
+
});
|
|
140
|
+
}
|
|
141
|
+
if (request.codeBase.includes('localStorage') && !request.codeBase.includes('secure')) {
|
|
142
|
+
vulnerabilities.push({
|
|
143
|
+
id: 'SEC-001',
|
|
144
|
+
title: 'Sensitive data in localStorage',
|
|
145
|
+
severity: 'high',
|
|
146
|
+
type: 'insecure-data-storage',
|
|
147
|
+
description: 'localStorage is not secure for sensitive data',
|
|
148
|
+
affectedArea: 'Data storage',
|
|
149
|
+
impact: 'User credentials and tokens can be stolen via XSS',
|
|
150
|
+
remediation: 'Use httpOnly cookies for auth tokens. Only store non-sensitive data.',
|
|
151
|
+
exploitability: 'high',
|
|
152
|
+
});
|
|
153
|
+
}
|
|
154
|
+
}
|
|
155
|
+
// Check dependencies for known vulnerabilities
|
|
156
|
+
if (request.dependencies?.includes('lodash@<4.17.21')) {
|
|
157
|
+
vulnerabilities.push({
|
|
158
|
+
id: 'DEP-001',
|
|
159
|
+
title: 'Vulnerable lodash version',
|
|
160
|
+
severity: 'medium',
|
|
161
|
+
type: 'dependency-vulnerability',
|
|
162
|
+
description: 'lodash < 4.17.21 has prototype pollution vulnerability',
|
|
163
|
+
affectedArea: 'Dependency',
|
|
164
|
+
cveId: 'CVE-2021-23337',
|
|
165
|
+
impact: 'Code execution, DoS',
|
|
166
|
+
remediation: 'Update lodash to >= 4.17.21',
|
|
167
|
+
exploitability: 'medium',
|
|
168
|
+
});
|
|
169
|
+
}
|
|
170
|
+
// Check API endpoints
|
|
171
|
+
if (request.apiEndpoints) {
|
|
172
|
+
for (const endpoint of request.apiEndpoints) {
|
|
173
|
+
if (endpoint.authentication === 'none' && endpoint.path.includes('admin')) {
|
|
174
|
+
vulnerabilities.push({
|
|
175
|
+
id: 'API-001',
|
|
176
|
+
title: 'Unprotected admin endpoint',
|
|
177
|
+
severity: 'critical',
|
|
178
|
+
type: 'broken-access-control',
|
|
179
|
+
description: `Admin endpoint ${endpoint.path} has no authentication`,
|
|
180
|
+
affectedArea: endpoint.path,
|
|
181
|
+
impact: 'Unauthorized access to admin functions',
|
|
182
|
+
remediation: 'Require authentication and authorization checks',
|
|
183
|
+
exploitability: 'high',
|
|
184
|
+
});
|
|
185
|
+
}
|
|
186
|
+
if (!endpoint.rateLimit) {
|
|
187
|
+
vulnerabilities.push({
|
|
188
|
+
id: 'API-002',
|
|
189
|
+
title: 'Missing rate limiting',
|
|
190
|
+
severity: 'medium',
|
|
191
|
+
type: 'security-misconfiguration',
|
|
192
|
+
description: `Endpoint ${endpoint.path} has no rate limiting`,
|
|
193
|
+
affectedArea: endpoint.path,
|
|
194
|
+
impact: 'Brute force attacks, DoS',
|
|
195
|
+
remediation: 'Implement rate limiting per IP/user',
|
|
196
|
+
exploitability: 'medium',
|
|
197
|
+
});
|
|
198
|
+
}
|
|
199
|
+
}
|
|
200
|
+
}
|
|
201
|
+
return vulnerabilities;
|
|
202
|
+
}
|
|
203
|
+
/**
|
|
204
|
+
* Calculate overall risk score
|
|
205
|
+
*/
|
|
206
|
+
function calculateRiskScore(vulnerabilities) {
|
|
207
|
+
let score = 0;
|
|
208
|
+
for (const vuln of vulnerabilities) {
|
|
209
|
+
const severityScore = vuln.severity === 'critical' ? 30
|
|
210
|
+
: vuln.severity === 'high' ? 20
|
|
211
|
+
: vuln.severity === 'medium' ? 10
|
|
212
|
+
: 3;
|
|
213
|
+
const exploitabilityScore = vuln.exploitability === 'high' ? 1
|
|
214
|
+
: vuln.exploitability === 'medium' ? 0.7
|
|
215
|
+
: 0.3;
|
|
216
|
+
score += severityScore * exploitabilityScore;
|
|
217
|
+
}
|
|
218
|
+
return Math.min(score, 100);
|
|
219
|
+
}
|
|
220
|
+
/**
|
|
221
|
+
* Generate remediation recommendations
|
|
222
|
+
*/
|
|
223
|
+
function generateRecommendations(vulnerabilities, request) {
|
|
224
|
+
const recommendations = [];
|
|
225
|
+
// Add recommendations based on vulnerabilities
|
|
226
|
+
if (vulnerabilities.some(v => v.type === 'xss')) {
|
|
227
|
+
recommendations.push({
|
|
228
|
+
priority: 'critical',
|
|
229
|
+
category: 'XSS Prevention',
|
|
230
|
+
recommendation: 'Implement Content Security Policy (CSP) headers',
|
|
231
|
+
implementation: 'Set CSP headers that restrict script sources',
|
|
232
|
+
effort: '2-4 hours',
|
|
233
|
+
benefit: 'Blocks inline scripts and untrusted external scripts',
|
|
234
|
+
});
|
|
235
|
+
}
|
|
236
|
+
if (vulnerabilities.some(v => v.type === 'dependency-vulnerability')) {
|
|
237
|
+
recommendations.push({
|
|
238
|
+
priority: 'high',
|
|
239
|
+
category: 'Dependency Management',
|
|
240
|
+
recommendation: 'Implement automated dependency updates',
|
|
241
|
+
implementation: 'Use Dependabot or Renovate for automated PRs',
|
|
242
|
+
effort: '1 hour setup',
|
|
243
|
+
benefit: 'Stay ahead of known vulnerabilities',
|
|
244
|
+
});
|
|
245
|
+
}
|
|
246
|
+
recommendations.push({
|
|
247
|
+
priority: 'high',
|
|
248
|
+
category: 'Security Testing',
|
|
249
|
+
recommendation: 'Add SAST (Static Application Security Testing)',
|
|
250
|
+
implementation: 'Integrate tools like Snyk, SonarQube, or ESLint security plugins',
|
|
251
|
+
effort: '4-8 hours',
|
|
252
|
+
benefit: 'Catch vulnerabilities during development',
|
|
253
|
+
});
|
|
254
|
+
recommendations.push({
|
|
255
|
+
priority: 'medium',
|
|
256
|
+
category: 'Security Headers',
|
|
257
|
+
recommendation: 'Implement security headers',
|
|
258
|
+
implementation: 'Add X-Frame-Options, X-Content-Type-Options, Strict-Transport-Security',
|
|
259
|
+
effort: '2 hours',
|
|
260
|
+
benefit: 'Prevent clickjacking and MIME sniffing attacks',
|
|
261
|
+
});
|
|
262
|
+
return recommendations;
|
|
263
|
+
}
|
|
264
|
+
/**
|
|
265
|
+
* Assess compliance status
|
|
266
|
+
*/
|
|
267
|
+
function assessCompliance(request) {
|
|
268
|
+
return {
|
|
269
|
+
gdpr: 'partial',
|
|
270
|
+
ccpa: 'partial',
|
|
271
|
+
hipaa: 'non-compliant',
|
|
272
|
+
pciDss: 'partial',
|
|
273
|
+
owasp: 'Top 10 vulnerabilities may be present - full audit recommended',
|
|
274
|
+
};
|
|
275
|
+
}
|
|
276
|
+
/**
|
|
277
|
+
* Generate scan summary
|
|
278
|
+
*/
|
|
279
|
+
function generateScanSummary(vulnerabilities) {
|
|
280
|
+
const critical = vulnerabilities.filter(v => v.severity === 'critical').length;
|
|
281
|
+
const high = vulnerabilities.filter(v => v.severity === 'high').length;
|
|
282
|
+
const medium = vulnerabilities.filter(v => v.severity === 'medium').length;
|
|
283
|
+
return `Security scan found ${vulnerabilities.length} issues: ${critical} critical, ${high} high, ${medium} medium. ` +
|
|
284
|
+
(critical > 0 ? 'URGENT: Address critical vulnerabilities immediately.' : 'Review and remediate high-severity issues.');
|
|
285
|
+
}
|
|
286
|
+
// ============================================================================
|
|
287
|
+
// Export
|
|
288
|
+
// ============================================================================
|
|
289
|
+
export default scanSecurity;
|
|
290
|
+
//# sourceMappingURL=security-scanner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"security-scanner.js","sourceRoot":"","sources":["../../src/tools/security-scanner.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Atlas Server - Senior Developer Mentor Tool
|
|
3
|
+
*
|
|
4
|
+
* Helps junior/mid-level developers think like senior engineers
|
|
5
|
+
* - Architectural decision analysis
|
|
6
|
+
* - Code design patterns and trade-offs
|
|
7
|
+
* - Performance optimization strategies
|
|
8
|
+
* - Best practices and conventions
|
|
9
|
+
* - Technical debt assessment
|
|
10
|
+
*
|
|
11
|
+
* @module senior-mentor
|
|
12
|
+
* @author Nishant Unavane
|
|
13
|
+
* @version 1.0.0
|
|
14
|
+
*/
|
|
15
|
+
export interface SeniorMentorRequest {
|
|
16
|
+
problem: string;
|
|
17
|
+
context?: string;
|
|
18
|
+
code?: string;
|
|
19
|
+
language?: string;
|
|
20
|
+
framework?: string;
|
|
21
|
+
constraints?: string[];
|
|
22
|
+
desiredOutcome?: string;
|
|
23
|
+
currentApproach?: string;
|
|
24
|
+
}
|
|
25
|
+
export interface ArchitectureAnalysis {
|
|
26
|
+
currentApproach: string;
|
|
27
|
+
issues: ArchitectureIssue[];
|
|
28
|
+
seniorPerspective: string;
|
|
29
|
+
alternativeApproaches: AlternativeApproach[];
|
|
30
|
+
recommendedPath: string;
|
|
31
|
+
reasoning: string;
|
|
32
|
+
}
|
|
33
|
+
export interface ArchitectureIssue {
|
|
34
|
+
severity: 'critical' | 'major' | 'minor';
|
|
35
|
+
title: string;
|
|
36
|
+
explanation: string;
|
|
37
|
+
longTermImpact: string;
|
|
38
|
+
}
|
|
39
|
+
export interface AlternativeApproach {
|
|
40
|
+
name: string;
|
|
41
|
+
description: string;
|
|
42
|
+
pros: string[];
|
|
43
|
+
cons: string[];
|
|
44
|
+
complexity: 'low' | 'medium' | 'high';
|
|
45
|
+
scalability: 'poor' | 'good' | 'excellent';
|
|
46
|
+
maintainability: 'poor' | 'fair' | 'good' | 'excellent';
|
|
47
|
+
seniorRating: number;
|
|
48
|
+
}
|
|
49
|
+
export interface MentorResult {
|
|
50
|
+
analysis: ArchitectureAnalysis;
|
|
51
|
+
seniorLessons: SeniorLesson[];
|
|
52
|
+
actionItems: ActionItem[];
|
|
53
|
+
readingRecommendations: Recommendation[];
|
|
54
|
+
generatedAt: string;
|
|
55
|
+
}
|
|
56
|
+
export interface SeniorLesson {
|
|
57
|
+
title: string;
|
|
58
|
+
lesson: string;
|
|
59
|
+
realWorldExample: string;
|
|
60
|
+
whenToApply: string;
|
|
61
|
+
}
|
|
62
|
+
export interface ActionItem {
|
|
63
|
+
priority: 'high' | 'medium' | 'low';
|
|
64
|
+
action: string;
|
|
65
|
+
expectedBenefit: string;
|
|
66
|
+
estimatedEffort: string;
|
|
67
|
+
timeline: string;
|
|
68
|
+
}
|
|
69
|
+
export interface Recommendation {
|
|
70
|
+
title: string;
|
|
71
|
+
author?: string;
|
|
72
|
+
type: 'article' | 'book' | 'course' | 'talk';
|
|
73
|
+
relevance: number;
|
|
74
|
+
url?: string;
|
|
75
|
+
}
|
|
76
|
+
/**
|
|
77
|
+
* Analyze a problem from a senior developer's perspective
|
|
78
|
+
*/
|
|
79
|
+
export declare function getMentorAnalysis(request: SeniorMentorRequest): Promise<MentorResult>;
|
|
80
|
+
export default getMentorAnalysis;
|
|
81
|
+
//# sourceMappingURL=senior-mentor.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"senior-mentor.d.ts","sourceRoot":"","sources":["../../src/tools/senior-mentor.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;GAaG;AAUH,MAAM,WAAW,mBAAmB;IAClC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,WAAW,CAAC,EAAE,MAAM,EAAE,CAAC;IACvB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,oBAAoB;IACnC,eAAe,EAAE,MAAM,CAAC;IACxB,MAAM,EAAE,iBAAiB,EAAE,CAAC;IAC5B,iBAAiB,EAAE,MAAM,CAAC;IAC1B,qBAAqB,EAAE,mBAAmB,EAAE,CAAC;IAC7C,eAAe,EAAE,MAAM,CAAC;IACxB,SAAS,EAAE,MAAM,CAAC;CACnB;AAED,MAAM,WAAW,iBAAiB;IAChC,QAAQ,EAAE,UAAU,GAAG,OAAO,GAAG,OAAO,CAAC;IACzC,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,EAAE,MAAM,CAAC;IACpB,cAAc,EAAE,MAAM,CAAC;CACxB;AAED,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,IAAI,EAAE,MAAM,EAAE,CAAC;IACf,UAAU,EAAE,KAAK,GAAG,QAAQ,GAAG,MAAM,CAAC;IACtC,WAAW,EAAE,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IAC3C,eAAe,EAAE,MAAM,GAAG,MAAM,GAAG,MAAM,GAAG,WAAW,CAAC;IACxD,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,YAAY;IAC3B,QAAQ,EAAE,oBAAoB,CAAC;IAC/B,aAAa,EAAE,YAAY,EAAE,CAAC;IAC9B,WAAW,EAAE,UAAU,EAAE,CAAC;IAC1B,sBAAsB,EAAE,cAAc,EAAE,CAAC;IACzC,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,YAAY;IAC3B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,MAAM,CAAC;IACf,gBAAgB,EAAE,MAAM,CAAC;IACzB,WAAW,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,UAAU;IACzB,QAAQ,EAAE,MAAM,GAAG,QAAQ,GAAG,KAAK,CAAC;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,eAAe,EAAE,MAAM,CAAC;IACxB,eAAe,EAAE,MAAM,CAAC;IACxB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,cAAc;IAC7B,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,SAAS,GAAG,MAAM,GAAG,QAAQ,GAAG,MAAM,CAAC;IAC7C,SAAS,EAAE,MAAM,CAAC;IAClB,GAAG,CAAC,EAAE,MAAM,CAAC;CACd;AAqBD;;GAEG;AACH,wBAAsB,iBAAiB,CACrC,OAAO,EAAE,mBAAmB,GAC3B,OAAO,CAAC,YAAY,CAAC,CAwBvB;AA+RD,eAAe,iBAAiB,CAAC"}
|