agentic-qe 2.3.2 → 2.3.4
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 +140 -0
- package/README.md +1 -1
- package/dist/agents/BaseAgent.d.ts +10 -0
- package/dist/agents/BaseAgent.d.ts.map +1 -1
- package/dist/agents/BaseAgent.js +113 -0
- package/dist/agents/BaseAgent.js.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.d.ts.map +1 -1
- package/dist/agents/CoverageAnalyzerAgent.js +53 -27
- package/dist/agents/CoverageAnalyzerAgent.js.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.d.ts +5 -0
- package/dist/agents/FlakyTestHunterAgent.d.ts.map +1 -1
- package/dist/agents/FlakyTestHunterAgent.js +20 -5
- package/dist/agents/FlakyTestHunterAgent.js.map +1 -1
- package/dist/agents/QualityGateAgent.js +44 -6
- package/dist/agents/QualityGateAgent.js.map +1 -1
- package/dist/cli/commands/dream/index.d.ts +50 -0
- package/dist/cli/commands/dream/index.d.ts.map +1 -0
- package/dist/cli/commands/dream/index.js +282 -0
- package/dist/cli/commands/dream/index.js.map +1 -0
- package/dist/cli/commands/learn/index.d.ts +31 -5
- package/dist/cli/commands/learn/index.d.ts.map +1 -1
- package/dist/cli/commands/learn/index.js +183 -50
- package/dist/cli/commands/learn/index.js.map +1 -1
- package/dist/cli/commands/transfer/index.d.ts +55 -0
- package/dist/cli/commands/transfer/index.d.ts.map +1 -0
- package/dist/cli/commands/transfer/index.js +317 -0
- package/dist/cli/commands/transfer/index.js.map +1 -0
- package/dist/cli/index.js +156 -3
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/init/database-init.js +5 -0
- package/dist/cli/init/database-init.js.map +1 -1
- package/dist/cli/init/index.d.ts.map +1 -1
- package/dist/cli/init/index.js +12 -4
- package/dist/cli/init/index.js.map +1 -1
- package/dist/cli/init/learning-init.d.ts +39 -0
- package/dist/cli/init/learning-init.d.ts.map +1 -0
- package/dist/cli/init/learning-init.js +239 -0
- package/dist/cli/init/learning-init.js.map +1 -0
- package/dist/core/memory/HNSWVectorMemory.js +1 -1
- package/dist/learning/PerformanceTracker.d.ts +9 -0
- package/dist/learning/PerformanceTracker.d.ts.map +1 -1
- package/dist/learning/PerformanceTracker.js +26 -2
- package/dist/learning/PerformanceTracker.js.map +1 -1
- package/dist/learning/baselines/BaselineCollector.d.ts +178 -0
- package/dist/learning/baselines/BaselineCollector.d.ts.map +1 -0
- package/dist/learning/baselines/BaselineCollector.js +398 -0
- package/dist/learning/baselines/BaselineCollector.js.map +1 -0
- package/dist/learning/baselines/StandardTaskSuite.d.ts +88 -0
- package/dist/learning/baselines/StandardTaskSuite.d.ts.map +1 -0
- package/dist/learning/baselines/StandardTaskSuite.js +801 -0
- package/dist/learning/baselines/StandardTaskSuite.js.map +1 -0
- package/dist/learning/baselines/index.d.ts +10 -0
- package/dist/learning/baselines/index.d.ts.map +1 -0
- package/dist/learning/baselines/index.js +15 -0
- package/dist/learning/baselines/index.js.map +1 -0
- package/dist/learning/capture/ExecutionRecorder.d.ts +97 -0
- package/dist/learning/capture/ExecutionRecorder.d.ts.map +1 -0
- package/dist/learning/capture/ExecutionRecorder.js +195 -0
- package/dist/learning/capture/ExecutionRecorder.js.map +1 -0
- package/dist/learning/capture/ExperienceCapture.d.ts +177 -0
- package/dist/learning/capture/ExperienceCapture.d.ts.map +1 -0
- package/dist/learning/capture/ExperienceCapture.js +432 -0
- package/dist/learning/capture/ExperienceCapture.js.map +1 -0
- package/dist/learning/capture/index.d.ts +12 -0
- package/dist/learning/capture/index.d.ts.map +1 -0
- package/dist/learning/capture/index.js +17 -0
- package/dist/learning/capture/index.js.map +1 -0
- package/dist/learning/dashboard/MetricsDashboard.d.ts +63 -0
- package/dist/learning/dashboard/MetricsDashboard.d.ts.map +1 -0
- package/dist/learning/dashboard/MetricsDashboard.js +230 -0
- package/dist/learning/dashboard/MetricsDashboard.js.map +1 -0
- package/dist/learning/dashboard/index.d.ts +7 -0
- package/dist/learning/dashboard/index.d.ts.map +1 -0
- package/dist/learning/dashboard/index.js +23 -0
- package/dist/learning/dashboard/index.js.map +1 -0
- package/dist/learning/dream/ConceptGraph.d.ts +160 -0
- package/dist/learning/dream/ConceptGraph.d.ts.map +1 -0
- package/dist/learning/dream/ConceptGraph.js +445 -0
- package/dist/learning/dream/ConceptGraph.js.map +1 -0
- package/dist/learning/dream/DreamEngine.d.ts +150 -0
- package/dist/learning/dream/DreamEngine.d.ts.map +1 -0
- package/dist/learning/dream/DreamEngine.js +551 -0
- package/dist/learning/dream/DreamEngine.js.map +1 -0
- package/dist/learning/dream/InsightGenerator.d.ts +152 -0
- package/dist/learning/dream/InsightGenerator.d.ts.map +1 -0
- package/dist/learning/dream/InsightGenerator.js +463 -0
- package/dist/learning/dream/InsightGenerator.js.map +1 -0
- package/dist/learning/dream/SpreadingActivation.d.ts +138 -0
- package/dist/learning/dream/SpreadingActivation.d.ts.map +1 -0
- package/dist/learning/dream/SpreadingActivation.js +320 -0
- package/dist/learning/dream/SpreadingActivation.js.map +1 -0
- package/dist/learning/dream/index.d.ts +14 -0
- package/dist/learning/dream/index.d.ts.map +1 -0
- package/dist/learning/dream/index.js +22 -0
- package/dist/learning/dream/index.js.map +1 -0
- package/dist/learning/metrics/AlertManager.d.ts +107 -0
- package/dist/learning/metrics/AlertManager.d.ts.map +1 -0
- package/dist/learning/metrics/AlertManager.js +246 -0
- package/dist/learning/metrics/AlertManager.js.map +1 -0
- package/dist/learning/metrics/LearningMetrics.d.ts +184 -0
- package/dist/learning/metrics/LearningMetrics.d.ts.map +1 -0
- package/dist/learning/metrics/LearningMetrics.js +754 -0
- package/dist/learning/metrics/LearningMetrics.js.map +1 -0
- package/dist/learning/metrics/MetricsCollector.d.ts +108 -0
- package/dist/learning/metrics/MetricsCollector.d.ts.map +1 -0
- package/dist/learning/metrics/MetricsCollector.js +240 -0
- package/dist/learning/metrics/MetricsCollector.js.map +1 -0
- package/dist/learning/metrics/MetricsStore.d.ts +149 -0
- package/dist/learning/metrics/MetricsStore.d.ts.map +1 -0
- package/dist/learning/metrics/MetricsStore.js +502 -0
- package/dist/learning/metrics/MetricsStore.js.map +1 -0
- package/dist/learning/metrics/TrendAnalyzer.d.ts +85 -0
- package/dist/learning/metrics/TrendAnalyzer.d.ts.map +1 -0
- package/dist/learning/metrics/TrendAnalyzer.js +210 -0
- package/dist/learning/metrics/TrendAnalyzer.js.map +1 -0
- package/dist/learning/metrics/index.d.ts +13 -0
- package/dist/learning/metrics/index.d.ts.map +1 -0
- package/dist/learning/metrics/index.js +39 -0
- package/dist/learning/metrics/index.js.map +1 -0
- package/dist/learning/scheduler/IdleDetector.d.ts +126 -0
- package/dist/learning/scheduler/IdleDetector.d.ts.map +1 -0
- package/dist/learning/scheduler/IdleDetector.js +281 -0
- package/dist/learning/scheduler/IdleDetector.js.map +1 -0
- package/dist/learning/scheduler/SleepCycle.d.ts +150 -0
- package/dist/learning/scheduler/SleepCycle.d.ts.map +1 -0
- package/dist/learning/scheduler/SleepCycle.js +506 -0
- package/dist/learning/scheduler/SleepCycle.js.map +1 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts +131 -0
- package/dist/learning/scheduler/SleepScheduler.d.ts.map +1 -0
- package/dist/learning/scheduler/SleepScheduler.js +299 -0
- package/dist/learning/scheduler/SleepScheduler.js.map +1 -0
- package/dist/learning/scheduler/TimeBasedTrigger.d.ts +108 -0
- package/dist/learning/scheduler/TimeBasedTrigger.d.ts.map +1 -0
- package/dist/learning/scheduler/TimeBasedTrigger.js +222 -0
- package/dist/learning/scheduler/TimeBasedTrigger.js.map +1 -0
- package/dist/learning/scheduler/index.d.ts +16 -0
- package/dist/learning/scheduler/index.d.ts.map +1 -0
- package/dist/learning/scheduler/index.js +23 -0
- package/dist/learning/scheduler/index.js.map +1 -0
- package/dist/learning/synthesis/PatternSynthesis.d.ts +162 -0
- package/dist/learning/synthesis/PatternSynthesis.d.ts.map +1 -0
- package/dist/learning/synthesis/PatternSynthesis.js +479 -0
- package/dist/learning/synthesis/PatternSynthesis.js.map +1 -0
- package/dist/learning/synthesis/index.d.ts +10 -0
- package/dist/learning/synthesis/index.d.ts.map +1 -0
- package/dist/learning/synthesis/index.js +14 -0
- package/dist/learning/synthesis/index.js.map +1 -0
- package/dist/learning/transfer/CompatibilityScorer.d.ts +115 -0
- package/dist/learning/transfer/CompatibilityScorer.d.ts.map +1 -0
- package/dist/learning/transfer/CompatibilityScorer.js +319 -0
- package/dist/learning/transfer/CompatibilityScorer.js.map +1 -0
- package/dist/learning/transfer/TransferProtocol.d.ts +172 -0
- package/dist/learning/transfer/TransferProtocol.d.ts.map +1 -0
- package/dist/learning/transfer/TransferProtocol.js +611 -0
- package/dist/learning/transfer/TransferProtocol.js.map +1 -0
- package/dist/learning/transfer/TransferPrototype.d.ts +93 -0
- package/dist/learning/transfer/TransferPrototype.d.ts.map +1 -0
- package/dist/learning/transfer/TransferPrototype.js +433 -0
- package/dist/learning/transfer/TransferPrototype.js.map +1 -0
- package/dist/learning/transfer/TransferValidator.d.ts +140 -0
- package/dist/learning/transfer/TransferValidator.d.ts.map +1 -0
- package/dist/learning/transfer/TransferValidator.js +413 -0
- package/dist/learning/transfer/TransferValidator.js.map +1 -0
- package/dist/learning/transfer/index.d.ts +14 -0
- package/dist/learning/transfer/index.d.ts.map +1 -0
- package/dist/learning/transfer/index.js +22 -0
- package/dist/learning/transfer/index.js.map +1 -0
- package/dist/mcp/handlers/test/test-generate-enhanced.d.ts +26 -2
- package/dist/mcp/handlers/test/test-generate-enhanced.d.ts.map +1 -1
- package/dist/mcp/handlers/test/test-generate-enhanced.js +159 -27
- package/dist/mcp/handlers/test/test-generate-enhanced.js.map +1 -1
- package/dist/mcp/server-instructions.d.ts +1 -1
- package/dist/mcp/server-instructions.js +1 -1
- package/dist/mcp/server.d.ts.map +1 -1
- package/dist/mcp/server.js +2 -1
- package/dist/mcp/server.js.map +1 -1
- package/package.json +7 -2
- package/scripts/README.md +352 -0
- package/scripts/hooks/capture-task-learning.js +191 -0
- package/scripts/hooks/emit-task-complete.sh +35 -0
- package/scripts/hooks/emit-task-spawn.sh +27 -0
- package/.claude/agents/failing-agent.json +0 -9
- package/.claude/agents/test-agent.json +0 -9
- package/dist/App.d.ts +0 -5
- package/dist/App.d.ts.map +0 -1
- package/dist/App.js +0 -15
- package/dist/App.js.map +0 -1
- package/dist/cli/init/utils.d.ts +0 -183
- package/dist/cli/init/utils.d.ts.map +0 -1
- package/dist/cli/init/utils.js +0 -354
- package/dist/cli/init/utils.js.map +0 -1
- package/dist/components/Dashboard/Dashboard.d.ts +0 -4
- package/dist/components/Dashboard/Dashboard.d.ts.map +0 -1
- package/dist/components/Dashboard/Dashboard.js +0 -148
- package/dist/components/Dashboard/Dashboard.js.map +0 -1
- package/dist/components/Dashboard/DashboardHeader.d.ts +0 -4
- package/dist/components/Dashboard/DashboardHeader.d.ts.map +0 -1
- package/dist/components/Dashboard/DashboardHeader.js +0 -138
- package/dist/components/Dashboard/DashboardHeader.js.map +0 -1
- package/dist/contexts/DashboardContext.d.ts +0 -41
- package/dist/contexts/DashboardContext.d.ts.map +0 -1
- package/dist/contexts/DashboardContext.js +0 -187
- package/dist/contexts/DashboardContext.js.map +0 -1
- package/dist/core/transport/QUICTransport.d.ts +0 -320
- package/dist/core/transport/QUICTransport.d.ts.map +0 -1
- package/dist/core/transport/QUICTransport.js +0 -711
- package/dist/core/transport/QUICTransport.js.map +0 -1
- package/dist/learning/LearningPersistenceAdapter.d.ts +0 -84
- package/dist/learning/LearningPersistenceAdapter.d.ts.map +0 -1
- package/dist/learning/LearningPersistenceAdapter.js +0 -202
- package/dist/learning/LearningPersistenceAdapter.js.map +0 -1
- package/dist/learning/algorithms/QLearning.d.ts +0 -68
- package/dist/learning/algorithms/QLearning.d.ts.map +0 -1
- package/dist/learning/algorithms/QLearning.js +0 -116
- package/dist/learning/algorithms/QLearning.js.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts +0 -7
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.d.ts.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.js +0 -267
- package/dist/mcp/handlers/advanced/requirements-generate-bdd.js.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-validate.d.ts +0 -7
- package/dist/mcp/handlers/advanced/requirements-validate.d.ts.map +0 -1
- package/dist/mcp/handlers/advanced/requirements-validate.js +0 -175
- package/dist/mcp/handlers/advanced/requirements-validate.js.map +0 -1
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts +0 -15
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.d.ts.map +0 -1
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js +0 -43
- package/dist/mcp/handlers/analysis/performance-benchmark-run-handler.js.map +0 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts +0 -58
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.d.ts.map +0 -1
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js +0 -188
- package/dist/mcp/handlers/analysis/performanceBenchmarkRun.js.map +0 -1
- package/dist/mcp/handlers/optimize-tests.d.ts +0 -219
- package/dist/mcp/handlers/optimize-tests.d.ts.map +0 -1
- package/dist/mcp/handlers/optimize-tests.js +0 -533
- package/dist/mcp/handlers/optimize-tests.js.map +0 -1
- package/dist/mcp/handlers/predict-defects.d.ts +0 -194
- package/dist/mcp/handlers/predict-defects.d.ts.map +0 -1
- package/dist/mcp/handlers/predict-defects.js +0 -722
- package/dist/mcp/handlers/predict-defects.js.map +0 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts +0 -199
- package/dist/mcp/handlers/prediction/regression-risk-analyze.d.ts.map +0 -1
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js +0 -471
- package/dist/mcp/handlers/prediction/regression-risk-analyze.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-decision-make.d.ts +0 -104
- package/dist/mcp/handlers/quality/quality-decision-make.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-decision-make.js +0 -408
- package/dist/mcp/handlers/quality/quality-decision-make.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-gate-execute.d.ts +0 -160
- package/dist/mcp/handlers/quality/quality-gate-execute.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-gate-execute.js +0 -412
- package/dist/mcp/handlers/quality/quality-gate-execute.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-policy-check.d.ts +0 -163
- package/dist/mcp/handlers/quality/quality-policy-check.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-policy-check.js +0 -455
- package/dist/mcp/handlers/quality/quality-policy-check.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-risk-assess.d.ts +0 -123
- package/dist/mcp/handlers/quality/quality-risk-assess.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-risk-assess.js +0 -522
- package/dist/mcp/handlers/quality/quality-risk-assess.js.map +0 -1
- package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts +0 -117
- package/dist/mcp/handlers/quality/quality-validate-metrics.d.ts.map +0 -1
- package/dist/mcp/handlers/quality/quality-validate-metrics.js +0 -288
- package/dist/mcp/handlers/quality/quality-validate-metrics.js.map +0 -1
- package/dist/mcp/handlers/quality-analyze.d.ts +0 -279
- package/dist/mcp/handlers/quality-analyze.d.ts.map +0 -1
- package/dist/mcp/handlers/quality-analyze.js +0 -720
- package/dist/mcp/handlers/quality-analyze.js.map +0 -1
- package/dist/mcp/handlers/security/check-authz.d.ts +0 -152
- package/dist/mcp/handlers/security/check-authz.d.ts.map +0 -1
- package/dist/mcp/handlers/security/check-authz.js +0 -434
- package/dist/mcp/handlers/security/check-authz.js.map +0 -1
- package/dist/mcp/handlers/security/scan-dependencies.d.ts +0 -148
- package/dist/mcp/handlers/security/scan-dependencies.d.ts.map +0 -1
- package/dist/mcp/handlers/security/scan-dependencies.js +0 -354
- package/dist/mcp/handlers/security/scan-dependencies.js.map +0 -1
- package/dist/mcp/handlers/security/validate-auth.d.ts +0 -128
- package/dist/mcp/handlers/security/validate-auth.d.ts.map +0 -1
- package/dist/mcp/handlers/security/validate-auth.js +0 -294
- package/dist/mcp/handlers/security/validate-auth.js.map +0 -1
- package/dist/mcp/handlers/test-generate.d.ts +0 -107
- package/dist/mcp/handlers/test-generate.d.ts.map +0 -1
- package/dist/mcp/handlers/test-generate.js +0 -454
- package/dist/mcp/handlers/test-generate.js.map +0 -1
|
@@ -1,148 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dependency Vulnerability Scanning Tool
|
|
3
|
-
*
|
|
4
|
-
* Scans project dependencies for known vulnerabilities, performs severity filtering,
|
|
5
|
-
* and provides auto-fix suggestions with CVE/CVSS scoring.
|
|
6
|
-
*
|
|
7
|
-
* @module security/scan-dependencies
|
|
8
|
-
* @version 1.0.0
|
|
9
|
-
* @author Agentic QE Team
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* import { scanDependenciesVulnerabilities } from './scan-dependencies';
|
|
14
|
-
*
|
|
15
|
-
* const result = await scanDependenciesVulnerabilities({
|
|
16
|
-
* packageFile: './package.json',
|
|
17
|
-
* severity: ['critical', 'high'],
|
|
18
|
-
* autoFix: true
|
|
19
|
-
* });
|
|
20
|
-
* ```
|
|
21
|
-
*/
|
|
22
|
-
import { BaseHandler, HandlerResponse } from '../base-handler.js';
|
|
23
|
-
export interface ScanDependenciesVulnerabilitiesParams {
|
|
24
|
-
/** Path to package file (package.json, requirements.txt, pom.xml, etc.) */
|
|
25
|
-
packageFile: string;
|
|
26
|
-
/** Severity levels to report */
|
|
27
|
-
severity?: Array<'critical' | 'high' | 'medium' | 'low'>;
|
|
28
|
-
/** Enable auto-fix suggestions */
|
|
29
|
-
autoFix?: boolean;
|
|
30
|
-
/** Include transitive dependencies */
|
|
31
|
-
includeTransitive?: boolean;
|
|
32
|
-
/** Include dev dependencies */
|
|
33
|
-
includeDev?: boolean;
|
|
34
|
-
/** Scan for license compliance issues */
|
|
35
|
-
scanLicenses?: boolean;
|
|
36
|
-
/** Scan for outdated packages */
|
|
37
|
-
scanOutdated?: boolean;
|
|
38
|
-
}
|
|
39
|
-
export interface DependencyVulnerability {
|
|
40
|
-
/** Vulnerability ID */
|
|
41
|
-
id: string;
|
|
42
|
-
/** Package name */
|
|
43
|
-
package: string;
|
|
44
|
-
/** Current version */
|
|
45
|
-
currentVersion: string;
|
|
46
|
-
/** Fixed version */
|
|
47
|
-
fixedVersion?: string;
|
|
48
|
-
/** Severity level */
|
|
49
|
-
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
50
|
-
/** Vulnerability title */
|
|
51
|
-
title: string;
|
|
52
|
-
/** Description */
|
|
53
|
-
description: string;
|
|
54
|
-
/** CVE identifier */
|
|
55
|
-
cve?: string;
|
|
56
|
-
/** CVSS score */
|
|
57
|
-
cvssScore?: number;
|
|
58
|
-
/** CVSS vector */
|
|
59
|
-
cvssVector?: string;
|
|
60
|
-
/** CWE identifier */
|
|
61
|
-
cwe?: string;
|
|
62
|
-
/** Exploitability score */
|
|
63
|
-
exploitability?: number;
|
|
64
|
-
/** Impact score */
|
|
65
|
-
impact?: number;
|
|
66
|
-
/** Dependency path (for transitive deps) */
|
|
67
|
-
dependencyPath?: string[];
|
|
68
|
-
/** Fix available */
|
|
69
|
-
fixAvailable: boolean;
|
|
70
|
-
/** Auto-fix command */
|
|
71
|
-
autoFixCommand?: string;
|
|
72
|
-
/** References */
|
|
73
|
-
references: string[];
|
|
74
|
-
/** Disclosure date */
|
|
75
|
-
disclosureDate?: string;
|
|
76
|
-
}
|
|
77
|
-
export interface LicenseIssue {
|
|
78
|
-
package: string;
|
|
79
|
-
version: string;
|
|
80
|
-
license: string;
|
|
81
|
-
riskLevel: 'high' | 'medium' | 'low';
|
|
82
|
-
reason: string;
|
|
83
|
-
recommendation: string;
|
|
84
|
-
}
|
|
85
|
-
export interface OutdatedPackage {
|
|
86
|
-
package: string;
|
|
87
|
-
currentVersion: string;
|
|
88
|
-
latestVersion: string;
|
|
89
|
-
type: 'major' | 'minor' | 'patch';
|
|
90
|
-
securityUpdate: boolean;
|
|
91
|
-
}
|
|
92
|
-
export interface VulnerabilityScanResult {
|
|
93
|
-
/** Discovered vulnerabilities */
|
|
94
|
-
vulnerabilities: DependencyVulnerability[];
|
|
95
|
-
/** Summary statistics */
|
|
96
|
-
summary: {
|
|
97
|
-
totalVulnerabilities: number;
|
|
98
|
-
critical: number;
|
|
99
|
-
high: number;
|
|
100
|
-
medium: number;
|
|
101
|
-
low: number;
|
|
102
|
-
fixable: number;
|
|
103
|
-
notFixable: number;
|
|
104
|
-
};
|
|
105
|
-
/** License compliance issues */
|
|
106
|
-
licenseIssues?: LicenseIssue[];
|
|
107
|
-
/** Outdated packages */
|
|
108
|
-
outdatedPackages?: OutdatedPackage[];
|
|
109
|
-
/** Dependency tree information */
|
|
110
|
-
dependencyTree: {
|
|
111
|
-
totalDependencies: number;
|
|
112
|
-
directDependencies: number;
|
|
113
|
-
transitiveDependencies: number;
|
|
114
|
-
devDependencies: number;
|
|
115
|
-
};
|
|
116
|
-
/** Fix recommendations */
|
|
117
|
-
fixRecommendations: {
|
|
118
|
-
autoFixable: Array<{
|
|
119
|
-
package: string;
|
|
120
|
-
command: string;
|
|
121
|
-
description: string;
|
|
122
|
-
}>;
|
|
123
|
-
manualFixes: Array<{
|
|
124
|
-
package: string;
|
|
125
|
-
steps: string[];
|
|
126
|
-
reason: string;
|
|
127
|
-
}>;
|
|
128
|
-
};
|
|
129
|
-
/** Metadata */
|
|
130
|
-
metadata: {
|
|
131
|
-
packageFile: string;
|
|
132
|
-
packageManager: 'npm' | 'yarn' | 'pip' | 'maven' | 'gradle' | 'unknown';
|
|
133
|
-
scanDuration: number;
|
|
134
|
-
timestamp: string;
|
|
135
|
-
databaseVersion?: string;
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
export declare class ScanDependenciesVulnerabilitiesHandler extends BaseHandler {
|
|
139
|
-
handle(args: ScanDependenciesVulnerabilitiesParams): Promise<HandlerResponse>;
|
|
140
|
-
}
|
|
141
|
-
/**
|
|
142
|
-
* Scan dependencies for security vulnerabilities
|
|
143
|
-
*
|
|
144
|
-
* @param params - Scan parameters
|
|
145
|
-
* @returns Vulnerability scan results with fix recommendations
|
|
146
|
-
*/
|
|
147
|
-
export declare function scanDependenciesVulnerabilities(params: ScanDependenciesVulnerabilitiesParams): Promise<VulnerabilityScanResult>;
|
|
148
|
-
//# sourceMappingURL=scan-dependencies.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scan-dependencies.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/security/scan-dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,354 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
/**
|
|
3
|
-
* Dependency Vulnerability Scanning Tool
|
|
4
|
-
*
|
|
5
|
-
* Scans project dependencies for known vulnerabilities, performs severity filtering,
|
|
6
|
-
* and provides auto-fix suggestions with CVE/CVSS scoring.
|
|
7
|
-
*
|
|
8
|
-
* @module security/scan-dependencies
|
|
9
|
-
* @version 1.0.0
|
|
10
|
-
* @author Agentic QE Team
|
|
11
|
-
*
|
|
12
|
-
* @example
|
|
13
|
-
* ```typescript
|
|
14
|
-
* import { scanDependenciesVulnerabilities } from './scan-dependencies';
|
|
15
|
-
*
|
|
16
|
-
* const result = await scanDependenciesVulnerabilities({
|
|
17
|
-
* packageFile: './package.json',
|
|
18
|
-
* severity: ['critical', 'high'],
|
|
19
|
-
* autoFix: true
|
|
20
|
-
* });
|
|
21
|
-
* ```
|
|
22
|
-
*/
|
|
23
|
-
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
24
|
-
if (k2 === undefined) k2 = k;
|
|
25
|
-
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
26
|
-
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
27
|
-
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
28
|
-
}
|
|
29
|
-
Object.defineProperty(o, k2, desc);
|
|
30
|
-
}) : (function(o, m, k, k2) {
|
|
31
|
-
if (k2 === undefined) k2 = k;
|
|
32
|
-
o[k2] = m[k];
|
|
33
|
-
}));
|
|
34
|
-
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
35
|
-
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
36
|
-
}) : function(o, v) {
|
|
37
|
-
o["default"] = v;
|
|
38
|
-
});
|
|
39
|
-
var __importStar = (this && this.__importStar) || (function () {
|
|
40
|
-
var ownKeys = function(o) {
|
|
41
|
-
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
42
|
-
var ar = [];
|
|
43
|
-
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
44
|
-
return ar;
|
|
45
|
-
};
|
|
46
|
-
return ownKeys(o);
|
|
47
|
-
};
|
|
48
|
-
return function (mod) {
|
|
49
|
-
if (mod && mod.__esModule) return mod;
|
|
50
|
-
var result = {};
|
|
51
|
-
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
52
|
-
__setModuleDefault(result, mod);
|
|
53
|
-
return result;
|
|
54
|
-
};
|
|
55
|
-
})();
|
|
56
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
57
|
-
exports.ScanDependenciesVulnerabilitiesHandler = void 0;
|
|
58
|
-
exports.scanDependenciesVulnerabilities = scanDependenciesVulnerabilities;
|
|
59
|
-
const base_handler_js_1 = require("../base-handler.js");
|
|
60
|
-
const SecureRandom_js_1 = require("../../../utils/SecureRandom.js");
|
|
61
|
-
const fs = __importStar(require("fs/promises"));
|
|
62
|
-
const path = __importStar(require("path"));
|
|
63
|
-
class ScanDependenciesVulnerabilitiesHandler extends base_handler_js_1.BaseHandler {
|
|
64
|
-
async handle(args) {
|
|
65
|
-
return this.safeHandle(async () => {
|
|
66
|
-
const requestId = this.generateRequestId();
|
|
67
|
-
this.log('info', 'Scanning dependencies for vulnerabilities', { requestId, packageFile: args.packageFile });
|
|
68
|
-
// Validate required parameters
|
|
69
|
-
this.validateRequired(args, ['packageFile']);
|
|
70
|
-
const { result, executionTime } = await this.measureExecutionTime(async () => {
|
|
71
|
-
return await scanDependenciesVulnerabilities(args);
|
|
72
|
-
});
|
|
73
|
-
this.log('info', `Dependency scan completed in ${executionTime.toFixed(2)}ms`, {
|
|
74
|
-
totalVulnerabilities: result.summary.totalVulnerabilities,
|
|
75
|
-
critical: result.summary.critical,
|
|
76
|
-
high: result.summary.high
|
|
77
|
-
});
|
|
78
|
-
return this.createSuccessResponse(result, requestId);
|
|
79
|
-
});
|
|
80
|
-
}
|
|
81
|
-
}
|
|
82
|
-
exports.ScanDependenciesVulnerabilitiesHandler = ScanDependenciesVulnerabilitiesHandler;
|
|
83
|
-
/**
|
|
84
|
-
* Scan dependencies for security vulnerabilities
|
|
85
|
-
*
|
|
86
|
-
* @param params - Scan parameters
|
|
87
|
-
* @returns Vulnerability scan results with fix recommendations
|
|
88
|
-
*/
|
|
89
|
-
async function scanDependenciesVulnerabilities(params) {
|
|
90
|
-
const startTime = Date.now();
|
|
91
|
-
const { packageFile, severity = ['critical', 'high', 'medium', 'low'], autoFix = true, includeTransitive = true, includeDev = true, scanLicenses = false, scanOutdated = false } = params;
|
|
92
|
-
// Detect package manager
|
|
93
|
-
const packageManager = detectPackageManager(packageFile);
|
|
94
|
-
// Load and parse package file
|
|
95
|
-
const packageData = await loadPackageFile(packageFile);
|
|
96
|
-
// Scan for vulnerabilities
|
|
97
|
-
const vulnerabilities = await scanForVulnerabilities(packageData, packageManager, severity, includeTransitive);
|
|
98
|
-
// Scan licenses if enabled
|
|
99
|
-
let licenseIssues;
|
|
100
|
-
if (scanLicenses) {
|
|
101
|
-
licenseIssues = await scanForLicenseIssues(packageData, packageManager);
|
|
102
|
-
}
|
|
103
|
-
// Scan for outdated packages if enabled
|
|
104
|
-
let outdatedPackages;
|
|
105
|
-
if (scanOutdated) {
|
|
106
|
-
outdatedPackages = await scanForOutdatedPackages(packageData, packageManager);
|
|
107
|
-
}
|
|
108
|
-
// Build dependency tree
|
|
109
|
-
const dependencyTree = buildDependencyTree(packageData, includeTransitive, includeDev);
|
|
110
|
-
// Generate fix recommendations
|
|
111
|
-
const fixRecommendations = generateFixRecommendations(vulnerabilities, packageManager, autoFix);
|
|
112
|
-
// Calculate summary
|
|
113
|
-
const summary = {
|
|
114
|
-
totalVulnerabilities: vulnerabilities.length,
|
|
115
|
-
critical: vulnerabilities.filter(v => v.severity === 'critical').length,
|
|
116
|
-
high: vulnerabilities.filter(v => v.severity === 'high').length,
|
|
117
|
-
medium: vulnerabilities.filter(v => v.severity === 'medium').length,
|
|
118
|
-
low: vulnerabilities.filter(v => v.severity === 'low').length,
|
|
119
|
-
fixable: vulnerabilities.filter(v => v.fixAvailable).length,
|
|
120
|
-
notFixable: vulnerabilities.filter(v => !v.fixAvailable).length
|
|
121
|
-
};
|
|
122
|
-
return {
|
|
123
|
-
vulnerabilities,
|
|
124
|
-
summary,
|
|
125
|
-
licenseIssues,
|
|
126
|
-
outdatedPackages,
|
|
127
|
-
dependencyTree,
|
|
128
|
-
fixRecommendations,
|
|
129
|
-
metadata: {
|
|
130
|
-
packageFile,
|
|
131
|
-
packageManager,
|
|
132
|
-
scanDuration: Date.now() - startTime,
|
|
133
|
-
timestamp: new Date().toISOString(),
|
|
134
|
-
databaseVersion: '2024.01.15'
|
|
135
|
-
}
|
|
136
|
-
};
|
|
137
|
-
}
|
|
138
|
-
function detectPackageManager(packageFile) {
|
|
139
|
-
const filename = path.basename(packageFile).toLowerCase();
|
|
140
|
-
if (filename === 'package.json')
|
|
141
|
-
return 'npm';
|
|
142
|
-
if (filename === 'requirements.txt' || filename === 'pipfile')
|
|
143
|
-
return 'pip';
|
|
144
|
-
if (filename === 'pom.xml')
|
|
145
|
-
return 'maven';
|
|
146
|
-
if (filename === 'build.gradle' || filename === 'build.gradle.kts')
|
|
147
|
-
return 'gradle';
|
|
148
|
-
if (filename === 'yarn.lock')
|
|
149
|
-
return 'yarn';
|
|
150
|
-
return 'unknown';
|
|
151
|
-
}
|
|
152
|
-
async function loadPackageFile(packageFile) {
|
|
153
|
-
try {
|
|
154
|
-
const content = await fs.readFile(packageFile, 'utf-8');
|
|
155
|
-
// Handle JSON files (package.json)
|
|
156
|
-
if (packageFile.endsWith('.json')) {
|
|
157
|
-
return JSON.parse(content);
|
|
158
|
-
}
|
|
159
|
-
// Handle other formats (simplified parsing)
|
|
160
|
-
return { dependencies: {}, devDependencies: {} };
|
|
161
|
-
}
|
|
162
|
-
catch (error) {
|
|
163
|
-
// Return mock data if file can't be loaded
|
|
164
|
-
return createMockPackageData();
|
|
165
|
-
}
|
|
166
|
-
}
|
|
167
|
-
function createMockPackageData() {
|
|
168
|
-
return {
|
|
169
|
-
name: 'example-project',
|
|
170
|
-
version: '1.0.0',
|
|
171
|
-
dependencies: {
|
|
172
|
-
'express': '^4.17.1',
|
|
173
|
-
'lodash': '^4.17.19',
|
|
174
|
-
'axios': '^0.21.0'
|
|
175
|
-
},
|
|
176
|
-
devDependencies: {
|
|
177
|
-
'jest': '^27.0.0',
|
|
178
|
-
'eslint': '^7.32.0'
|
|
179
|
-
}
|
|
180
|
-
};
|
|
181
|
-
}
|
|
182
|
-
async function scanForVulnerabilities(packageData, packageManager, severity, includeTransitive) {
|
|
183
|
-
const vulnerabilities = [];
|
|
184
|
-
// Scan direct dependencies
|
|
185
|
-
const dependencies = { ...packageData.dependencies, ...packageData.devDependencies };
|
|
186
|
-
for (const [pkg, version] of Object.entries(dependencies)) {
|
|
187
|
-
// Simulate vulnerability detection
|
|
188
|
-
if (SecureRandom_js_1.SecureRandom.randomFloat() > 0.7) {
|
|
189
|
-
const vuln = generateMockVulnerability(pkg, version);
|
|
190
|
-
if (severity.includes(vuln.severity)) {
|
|
191
|
-
vulnerabilities.push(vuln);
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
// Simulate transitive dependencies
|
|
195
|
-
if (includeTransitive && SecureRandom_js_1.SecureRandom.randomFloat() > 0.8) {
|
|
196
|
-
const transitiveVuln = generateMockVulnerability(`${pkg}-transitive`, version);
|
|
197
|
-
transitiveVuln.dependencyPath = [pkg, `${pkg}-transitive`];
|
|
198
|
-
if (severity.includes(transitiveVuln.severity)) {
|
|
199
|
-
vulnerabilities.push(transitiveVuln);
|
|
200
|
-
}
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
return vulnerabilities;
|
|
204
|
-
}
|
|
205
|
-
function generateMockVulnerability(pkg, version) {
|
|
206
|
-
const severities = ['critical', 'high', 'medium', 'low'];
|
|
207
|
-
const severity = severities[Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * severities.length)];
|
|
208
|
-
const cvssScores = {
|
|
209
|
-
critical: 9.0 + SecureRandom_js_1.SecureRandom.randomFloat() * 1.0,
|
|
210
|
-
high: 7.0 + SecureRandom_js_1.SecureRandom.randomFloat() * 2.0,
|
|
211
|
-
medium: 4.0 + SecureRandom_js_1.SecureRandom.randomFloat() * 3.0,
|
|
212
|
-
low: 0.1 + SecureRandom_js_1.SecureRandom.randomFloat() * 3.9
|
|
213
|
-
};
|
|
214
|
-
const fixAvailable = SecureRandom_js_1.SecureRandom.randomFloat() > 0.3;
|
|
215
|
-
const cveYear = 2020 + Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * 4);
|
|
216
|
-
const cveNumber = Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * 99999);
|
|
217
|
-
return {
|
|
218
|
-
id: `VULN-${Date.now()}-${Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * 1000)}`,
|
|
219
|
-
package: pkg,
|
|
220
|
-
currentVersion: version,
|
|
221
|
-
fixedVersion: fixAvailable ? incrementVersion(version) : undefined,
|
|
222
|
-
severity,
|
|
223
|
-
title: `Security vulnerability in ${pkg}`,
|
|
224
|
-
description: `Known security issue affecting ${pkg} ${version}`,
|
|
225
|
-
cve: `CVE-${cveYear}-${cveNumber}`,
|
|
226
|
-
cvssScore: cvssScores[severity],
|
|
227
|
-
cvssVector: 'CVSS:3.1/AV:N/AC:L/PR:N/UI:N/S:U/C:H/I:H/A:H',
|
|
228
|
-
cwe: 'CWE-79',
|
|
229
|
-
exploitability: SecureRandom_js_1.SecureRandom.randomFloat() * 10,
|
|
230
|
-
impact: SecureRandom_js_1.SecureRandom.randomFloat() * 10,
|
|
231
|
-
fixAvailable,
|
|
232
|
-
autoFixCommand: fixAvailable ? `npm update ${pkg}` : undefined,
|
|
233
|
-
references: [
|
|
234
|
-
`https://nvd.nist.gov/vuln/detail/CVE-${cveYear}-${cveNumber}`,
|
|
235
|
-
`https://github.com/advisories/GHSA-${cveYear}-${cveNumber}`
|
|
236
|
-
],
|
|
237
|
-
disclosureDate: `${cveYear}-${String(Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * 12) + 1).padStart(2, '0')}-15`
|
|
238
|
-
};
|
|
239
|
-
}
|
|
240
|
-
function incrementVersion(version) {
|
|
241
|
-
// Simple version increment (remove ^ or ~ prefix)
|
|
242
|
-
const cleanVersion = version.replace(/[\^~]/, '');
|
|
243
|
-
const parts = cleanVersion.split('.');
|
|
244
|
-
if (parts.length >= 3) {
|
|
245
|
-
const patch = parseInt(parts[2]) + 1;
|
|
246
|
-
return `${parts[0]}.${parts[1]}.${patch}`;
|
|
247
|
-
}
|
|
248
|
-
return cleanVersion;
|
|
249
|
-
}
|
|
250
|
-
async function scanForLicenseIssues(packageData, packageManager) {
|
|
251
|
-
const issues = [];
|
|
252
|
-
const dependencies = { ...packageData.dependencies, ...packageData.devDependencies };
|
|
253
|
-
// Risky licenses
|
|
254
|
-
const riskyLicenses = ['GPL-3.0', 'AGPL-3.0', 'SSPL'];
|
|
255
|
-
const moderateRiskLicenses = ['GPL-2.0', 'LGPL-3.0'];
|
|
256
|
-
for (const [pkg, version] of Object.entries(dependencies)) {
|
|
257
|
-
// Simulate license detection
|
|
258
|
-
if (SecureRandom_js_1.SecureRandom.randomFloat() > 0.9) {
|
|
259
|
-
const license = riskyLicenses[Math.floor(SecureRandom_js_1.SecureRandom.randomFloat() * riskyLicenses.length)];
|
|
260
|
-
issues.push({
|
|
261
|
-
package: pkg,
|
|
262
|
-
version: version,
|
|
263
|
-
license,
|
|
264
|
-
riskLevel: 'high',
|
|
265
|
-
reason: `${license} requires source code disclosure`,
|
|
266
|
-
recommendation: 'Consider replacing with MIT/Apache-2.0 licensed alternative'
|
|
267
|
-
});
|
|
268
|
-
}
|
|
269
|
-
}
|
|
270
|
-
return issues;
|
|
271
|
-
}
|
|
272
|
-
async function scanForOutdatedPackages(packageData, packageManager) {
|
|
273
|
-
const outdated = [];
|
|
274
|
-
const dependencies = { ...packageData.dependencies, ...packageData.devDependencies };
|
|
275
|
-
for (const [pkg, version] of Object.entries(dependencies)) {
|
|
276
|
-
// Simulate outdated package detection
|
|
277
|
-
if (SecureRandom_js_1.SecureRandom.randomFloat() > 0.6) {
|
|
278
|
-
const currentVersion = version.replace(/[\^~]/, '');
|
|
279
|
-
const parts = currentVersion.split('.');
|
|
280
|
-
const updateType = SecureRandom_js_1.SecureRandom.randomFloat();
|
|
281
|
-
let latestVersion;
|
|
282
|
-
let type;
|
|
283
|
-
if (updateType > 0.8) {
|
|
284
|
-
// Major update
|
|
285
|
-
latestVersion = `${parseInt(parts[0]) + 1}.0.0`;
|
|
286
|
-
type = 'major';
|
|
287
|
-
}
|
|
288
|
-
else if (updateType > 0.5) {
|
|
289
|
-
// Minor update
|
|
290
|
-
latestVersion = `${parts[0]}.${parseInt(parts[1]) + 1}.0`;
|
|
291
|
-
type = 'minor';
|
|
292
|
-
}
|
|
293
|
-
else {
|
|
294
|
-
// Patch update
|
|
295
|
-
latestVersion = `${parts[0]}.${parts[1]}.${parseInt(parts[2] || '0') + 1}`;
|
|
296
|
-
type = 'patch';
|
|
297
|
-
}
|
|
298
|
-
outdated.push({
|
|
299
|
-
package: pkg,
|
|
300
|
-
currentVersion,
|
|
301
|
-
latestVersion,
|
|
302
|
-
type,
|
|
303
|
-
securityUpdate: SecureRandom_js_1.SecureRandom.randomFloat() > 0.7
|
|
304
|
-
});
|
|
305
|
-
}
|
|
306
|
-
}
|
|
307
|
-
return outdated;
|
|
308
|
-
}
|
|
309
|
-
function buildDependencyTree(packageData, includeTransitive, includeDev) {
|
|
310
|
-
const directDeps = Object.keys(packageData.dependencies || {}).length;
|
|
311
|
-
const devDeps = includeDev ? Object.keys(packageData.devDependencies || {}).length : 0;
|
|
312
|
-
const transitiveDeps = includeTransitive ? Math.floor((directDeps + devDeps) * 2.5) : 0;
|
|
313
|
-
return {
|
|
314
|
-
totalDependencies: directDeps + devDeps + transitiveDeps,
|
|
315
|
-
directDependencies: directDeps,
|
|
316
|
-
transitiveDependencies: transitiveDeps,
|
|
317
|
-
devDependencies: devDeps
|
|
318
|
-
};
|
|
319
|
-
}
|
|
320
|
-
function generateFixRecommendations(vulnerabilities, packageManager, autoFix) {
|
|
321
|
-
const autoFixable = [];
|
|
322
|
-
const manualFixes = [];
|
|
323
|
-
for (const vuln of vulnerabilities) {
|
|
324
|
-
if (vuln.fixAvailable && autoFix) {
|
|
325
|
-
const command = packageManager === 'npm'
|
|
326
|
-
? `npm update ${vuln.package}@${vuln.fixedVersion}`
|
|
327
|
-
: packageManager === 'yarn'
|
|
328
|
-
? `yarn upgrade ${vuln.package}@${vuln.fixedVersion}`
|
|
329
|
-
: `Update ${vuln.package} to ${vuln.fixedVersion}`;
|
|
330
|
-
autoFixable.push({
|
|
331
|
-
package: vuln.package,
|
|
332
|
-
command,
|
|
333
|
-
description: `Update to ${vuln.fixedVersion} to fix ${vuln.cve}`
|
|
334
|
-
});
|
|
335
|
-
}
|
|
336
|
-
else if (!vuln.fixAvailable) {
|
|
337
|
-
manualFixes.push({
|
|
338
|
-
package: vuln.package,
|
|
339
|
-
steps: [
|
|
340
|
-
'Check for alternative packages with similar functionality',
|
|
341
|
-
'Review package security advisories',
|
|
342
|
-
'Consider implementing mitigations or workarounds',
|
|
343
|
-
'Monitor for security updates'
|
|
344
|
-
],
|
|
345
|
-
reason: 'No fixed version available yet'
|
|
346
|
-
});
|
|
347
|
-
}
|
|
348
|
-
}
|
|
349
|
-
return {
|
|
350
|
-
autoFixable,
|
|
351
|
-
manualFixes
|
|
352
|
-
};
|
|
353
|
-
}
|
|
354
|
-
//# sourceMappingURL=scan-dependencies.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"scan-dependencies.js","sourceRoot":"","sources":["../../../../src/mcp/handlers/security/scan-dependencies.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,128 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Authentication Flow Validation Tool
|
|
3
|
-
*
|
|
4
|
-
* Validates authentication flows, tests auth endpoints, and performs token validation
|
|
5
|
-
* with comprehensive security testing of authentication mechanisms.
|
|
6
|
-
*
|
|
7
|
-
* @module security/validate-auth
|
|
8
|
-
* @version 1.0.0
|
|
9
|
-
* @author Agentic QE Team
|
|
10
|
-
*
|
|
11
|
-
* @example
|
|
12
|
-
* ```typescript
|
|
13
|
-
* import { validateAuthenticationFlow } from './validate-auth';
|
|
14
|
-
*
|
|
15
|
-
* const result = await validateAuthenticationFlow({
|
|
16
|
-
* authEndpoints: ['https://api.example.com/auth/login'],
|
|
17
|
-
* testCases: [{
|
|
18
|
-
* type: 'valid-credentials',
|
|
19
|
-
* username: 'test@example.com',
|
|
20
|
-
* password: 'securePassword123'
|
|
21
|
-
* }],
|
|
22
|
-
* validateTokens: true
|
|
23
|
-
* });
|
|
24
|
-
* ```
|
|
25
|
-
*/
|
|
26
|
-
import { BaseHandler, HandlerResponse } from '../base-handler.js';
|
|
27
|
-
export interface AuthTestCase {
|
|
28
|
-
/** Test case type */
|
|
29
|
-
type: 'valid-credentials' | 'invalid-credentials' | 'missing-credentials' | 'expired-token' | 'malformed-token' | 'brute-force' | 'session-fixation';
|
|
30
|
-
/** Username/email for authentication */
|
|
31
|
-
username?: string;
|
|
32
|
-
/** Password for authentication */
|
|
33
|
-
password?: string;
|
|
34
|
-
/** Token to validate */
|
|
35
|
-
token?: string;
|
|
36
|
-
/** Expected HTTP status code */
|
|
37
|
-
expectedStatus?: number;
|
|
38
|
-
/** Expected response pattern */
|
|
39
|
-
expectedResponse?: string;
|
|
40
|
-
}
|
|
41
|
-
export interface ValidateAuthenticationFlowParams {
|
|
42
|
-
/** Authentication endpoints to test */
|
|
43
|
-
authEndpoints: string[];
|
|
44
|
-
/** Test cases to execute */
|
|
45
|
-
testCases: AuthTestCase[];
|
|
46
|
-
/** Enable token validation */
|
|
47
|
-
validateTokens?: boolean;
|
|
48
|
-
/** Enable session management tests */
|
|
49
|
-
validateSessions?: boolean;
|
|
50
|
-
/** Enable CSRF protection tests */
|
|
51
|
-
validateCSRF?: boolean;
|
|
52
|
-
/** Rate limiting tests */
|
|
53
|
-
testRateLimiting?: boolean;
|
|
54
|
-
}
|
|
55
|
-
export interface AuthValidationResult {
|
|
56
|
-
/** Endpoint validation results */
|
|
57
|
-
endpointResults: Array<{
|
|
58
|
-
endpoint: string;
|
|
59
|
-
status: 'pass' | 'fail' | 'warning';
|
|
60
|
-
testsPassed: number;
|
|
61
|
-
testsFailed: number;
|
|
62
|
-
findings: AuthFinding[];
|
|
63
|
-
}>;
|
|
64
|
-
/** Token validation results */
|
|
65
|
-
tokenValidation?: {
|
|
66
|
-
validTokens: number;
|
|
67
|
-
invalidTokens: number;
|
|
68
|
-
expiredTokens: number;
|
|
69
|
-
malformedTokens: number;
|
|
70
|
-
issues: string[];
|
|
71
|
-
};
|
|
72
|
-
/** Session validation results */
|
|
73
|
-
sessionValidation?: {
|
|
74
|
-
sessionManagement: 'secure' | 'insecure' | 'partial';
|
|
75
|
-
sessionFixationVulnerable: boolean;
|
|
76
|
-
sessionTimeoutConfigured: boolean;
|
|
77
|
-
issues: string[];
|
|
78
|
-
};
|
|
79
|
-
/** CSRF validation results */
|
|
80
|
-
csrfValidation?: {
|
|
81
|
-
csrfProtection: 'enabled' | 'disabled' | 'partial';
|
|
82
|
-
vulnerableEndpoints: string[];
|
|
83
|
-
issues: string[];
|
|
84
|
-
};
|
|
85
|
-
/** Rate limiting results */
|
|
86
|
-
rateLimitingValidation?: {
|
|
87
|
-
rateLimitingEnabled: boolean;
|
|
88
|
-
maxRequestsPerMinute: number;
|
|
89
|
-
lockoutMechanism: boolean;
|
|
90
|
-
issues: string[];
|
|
91
|
-
};
|
|
92
|
-
/** Overall security posture */
|
|
93
|
-
summary: {
|
|
94
|
-
overallStatus: 'secure' | 'vulnerable' | 'needs-review';
|
|
95
|
-
totalTests: number;
|
|
96
|
-
passed: number;
|
|
97
|
-
failed: number;
|
|
98
|
-
warnings: number;
|
|
99
|
-
criticalIssues: number;
|
|
100
|
-
recommendations: string[];
|
|
101
|
-
};
|
|
102
|
-
/** Metadata */
|
|
103
|
-
metadata: {
|
|
104
|
-
testDuration: number;
|
|
105
|
-
timestamp: string;
|
|
106
|
-
};
|
|
107
|
-
}
|
|
108
|
-
export interface AuthFinding {
|
|
109
|
-
severity: 'critical' | 'high' | 'medium' | 'low';
|
|
110
|
-
category: 'authentication' | 'authorization' | 'session' | 'token' | 'csrf';
|
|
111
|
-
title: string;
|
|
112
|
-
description: string;
|
|
113
|
-
endpoint: string;
|
|
114
|
-
cwe?: string;
|
|
115
|
-
cvss?: number;
|
|
116
|
-
remediation: string;
|
|
117
|
-
}
|
|
118
|
-
export declare class ValidateAuthenticationFlowHandler extends BaseHandler {
|
|
119
|
-
handle(args: ValidateAuthenticationFlowParams): Promise<HandlerResponse>;
|
|
120
|
-
}
|
|
121
|
-
/**
|
|
122
|
-
* Validate authentication flow with comprehensive security testing
|
|
123
|
-
*
|
|
124
|
-
* @param params - Authentication validation parameters
|
|
125
|
-
* @returns Validation results with security findings
|
|
126
|
-
*/
|
|
127
|
-
export declare function validateAuthenticationFlow(params: ValidateAuthenticationFlowParams): Promise<AuthValidationResult>;
|
|
128
|
-
//# sourceMappingURL=validate-auth.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"validate-auth.d.ts","sourceRoot":"","sources":["../../../../src/mcp/handlers/security/validate-auth.ts"],"names":[],"mappings":"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"}
|