api-tests-coverage 1.0.0
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 +703 -0
- package/config.yaml.example +227 -0
- package/dist/action/src/index.d.ts +2 -0
- package/dist/action/src/index.d.ts.map +1 -0
- package/dist/action/src/index.js +349 -0
- package/dist/action/src/prComment.d.ts +34 -0
- package/dist/action/src/prComment.d.ts.map +1 -0
- package/dist/action/src/prComment.js +146 -0
- package/dist/src/ast/astAnalysisOrchestrator.d.ts +36 -0
- package/dist/src/ast/astAnalysisOrchestrator.d.ts.map +1 -0
- package/dist/src/ast/astAnalysisOrchestrator.js +123 -0
- package/dist/src/ast/astTypes.d.ts +105 -0
- package/dist/src/ast/astTypes.d.ts.map +1 -0
- package/dist/src/ast/astTypes.js +9 -0
- package/dist/src/ast/languageAnalyzer.d.ts +46 -0
- package/dist/src/ast/languageAnalyzer.d.ts.map +1 -0
- package/dist/src/ast/languageAnalyzer.js +9 -0
- package/dist/src/ast/languageCapabilities.d.ts +24 -0
- package/dist/src/ast/languageCapabilities.d.ts.map +1 -0
- package/dist/src/ast/languageCapabilities.js +92 -0
- package/dist/src/ast/parseFile.d.ts +16 -0
- package/dist/src/ast/parseFile.d.ts.map +1 -0
- package/dist/src/ast/parseFile.js +65 -0
- package/dist/src/ast/parserRegistry.d.ts +39 -0
- package/dist/src/ast/parserRegistry.d.ts.map +1 -0
- package/dist/src/ast/parserRegistry.js +66 -0
- package/dist/src/buildSummary.d.ts +26 -0
- package/dist/src/buildSummary.d.ts.map +1 -0
- package/dist/src/buildSummary.js +193 -0
- package/dist/src/businessCoverage.d.ts +68 -0
- package/dist/src/businessCoverage.d.ts.map +1 -0
- package/dist/src/businessCoverage.js +290 -0
- package/dist/src/compatibilityCoverage.d.ts +83 -0
- package/dist/src/compatibilityCoverage.d.ts.map +1 -0
- package/dist/src/compatibilityCoverage.js +501 -0
- package/dist/src/config/defaultConfig.d.ts +9 -0
- package/dist/src/config/defaultConfig.d.ts.map +1 -0
- package/dist/src/config/defaultConfig.js +97 -0
- package/dist/src/config/index.d.ts +12 -0
- package/dist/src/config/index.d.ts.map +1 -0
- package/dist/src/config/index.js +37 -0
- package/dist/src/config/loadConfig.d.ts +29 -0
- package/dist/src/config/loadConfig.d.ts.map +1 -0
- package/dist/src/config/loadConfig.js +135 -0
- package/dist/src/config/mergeConfig.d.ts +15 -0
- package/dist/src/config/mergeConfig.d.ts.map +1 -0
- package/dist/src/config/mergeConfig.js +57 -0
- package/dist/src/config/schema.d.ts +15 -0
- package/dist/src/config/schema.d.ts.map +1 -0
- package/dist/src/config/schema.js +30 -0
- package/dist/src/config/types.d.ts +175 -0
- package/dist/src/config/types.d.ts.map +1 -0
- package/dist/src/config/types.js +9 -0
- package/dist/src/config/validateConfig.d.ts +22 -0
- package/dist/src/config/validateConfig.d.ts.map +1 -0
- package/dist/src/config/validateConfig.js +171 -0
- package/dist/src/config.d.ts +168 -0
- package/dist/src/config.d.ts.map +1 -0
- package/dist/src/config.js +204 -0
- package/dist/src/coverage/deep-analysis/callGraph.d.ts +67 -0
- package/dist/src/coverage/deep-analysis/callGraph.d.ts.map +1 -0
- package/dist/src/coverage/deep-analysis/callGraph.js +275 -0
- package/dist/src/coverage/deep-analysis/deepEndpointResolver.d.ts +23 -0
- package/dist/src/coverage/deep-analysis/deepEndpointResolver.d.ts.map +1 -0
- package/dist/src/coverage/deep-analysis/deepEndpointResolver.js +394 -0
- package/dist/src/coverage/deep-analysis/index.d.ts +17 -0
- package/dist/src/coverage/deep-analysis/index.d.ts.map +1 -0
- package/dist/src/coverage/deep-analysis/index.js +63 -0
- package/dist/src/coverage/deep-analysis/resolveAssertions.d.ts +60 -0
- package/dist/src/coverage/deep-analysis/resolveAssertions.d.ts.map +1 -0
- package/dist/src/coverage/deep-analysis/resolveAssertions.js +121 -0
- package/dist/src/coverage/deep-analysis/resolveConstants.d.ts +36 -0
- package/dist/src/coverage/deep-analysis/resolveConstants.d.ts.map +1 -0
- package/dist/src/coverage/deep-analysis/resolveConstants.js +92 -0
- package/dist/src/coverage/deep-analysis/resolveEnums.d.ts +55 -0
- package/dist/src/coverage/deep-analysis/resolveEnums.d.ts.map +1 -0
- package/dist/src/coverage/deep-analysis/resolveEnums.js +152 -0
- package/dist/src/coverage/deep-analysis/resolveMethodChains.d.ts +70 -0
- package/dist/src/coverage/deep-analysis/resolveMethodChains.d.ts.map +1 -0
- package/dist/src/coverage/deep-analysis/resolveMethodChains.js +152 -0
- package/dist/src/coverage/deep-analysis/resolvePaths.d.ts +80 -0
- package/dist/src/coverage/deep-analysis/resolvePaths.d.ts.map +1 -0
- package/dist/src/coverage/deep-analysis/resolvePaths.js +216 -0
- package/dist/src/coverage/deep-analysis/resolveRequestWrappers.d.ts +71 -0
- package/dist/src/coverage/deep-analysis/resolveRequestWrappers.d.ts.map +1 -0
- package/dist/src/coverage/deep-analysis/resolveRequestWrappers.js +226 -0
- package/dist/src/coverage/deep-analysis/symbolTable.d.ts +58 -0
- package/dist/src/coverage/deep-analysis/symbolTable.d.ts.map +1 -0
- package/dist/src/coverage/deep-analysis/symbolTable.js +230 -0
- package/dist/src/coverage/deep-analysis/types.d.ts +122 -0
- package/dist/src/coverage/deep-analysis/types.d.ts.map +1 -0
- package/dist/src/coverage/deep-analysis/types.js +21 -0
- package/dist/src/discovery/fileClassifier.d.ts +50 -0
- package/dist/src/discovery/fileClassifier.d.ts.map +1 -0
- package/dist/src/discovery/fileClassifier.js +238 -0
- package/dist/src/discovery/projectDiscovery.d.ts +66 -0
- package/dist/src/discovery/projectDiscovery.d.ts.map +1 -0
- package/dist/src/discovery/projectDiscovery.js +287 -0
- package/dist/src/endpointCoverage.d.ts +70 -0
- package/dist/src/endpointCoverage.d.ts.map +1 -0
- package/dist/src/endpointCoverage.js +381 -0
- package/dist/src/errorCoverage.d.ts +93 -0
- package/dist/src/errorCoverage.d.ts.map +1 -0
- package/dist/src/errorCoverage.js +698 -0
- package/dist/src/index.d.ts +3 -0
- package/dist/src/index.d.ts.map +1 -0
- package/dist/src/index.js +1441 -0
- package/dist/src/inference/businessRuleInference.d.ts +63 -0
- package/dist/src/inference/businessRuleInference.d.ts.map +1 -0
- package/dist/src/inference/businessRuleInference.js +268 -0
- package/dist/src/inference/integrationFlowInference.d.ts +56 -0
- package/dist/src/inference/integrationFlowInference.d.ts.map +1 -0
- package/dist/src/inference/integrationFlowInference.js +266 -0
- package/dist/src/integrationCoverage.d.ts +72 -0
- package/dist/src/integrationCoverage.d.ts.map +1 -0
- package/dist/src/integrationCoverage.js +317 -0
- package/dist/src/intelligence/index.d.ts +20 -0
- package/dist/src/intelligence/index.d.ts.map +1 -0
- package/dist/src/intelligence/index.js +105 -0
- package/dist/src/intelligence/linkageEngine.d.ts +20 -0
- package/dist/src/intelligence/linkageEngine.d.ts.map +1 -0
- package/dist/src/intelligence/linkageEngine.js +522 -0
- package/dist/src/intelligence/markdownReporter.d.ts +12 -0
- package/dist/src/intelligence/markdownReporter.d.ts.map +1 -0
- package/dist/src/intelligence/markdownReporter.js +265 -0
- package/dist/src/intelligence/riskScoring.d.ts +53 -0
- package/dist/src/intelligence/riskScoring.d.ts.map +1 -0
- package/dist/src/intelligence/riskScoring.js +181 -0
- package/dist/src/intelligence/types.d.ts +121 -0
- package/dist/src/intelligence/types.d.ts.map +1 -0
- package/dist/src/intelligence/types.js +8 -0
- package/dist/src/languageDetection.d.ts +100 -0
- package/dist/src/languageDetection.d.ts.map +1 -0
- package/dist/src/languageDetection.js +349 -0
- package/dist/src/languages/java/index.d.ts +16 -0
- package/dist/src/languages/java/index.d.ts.map +1 -0
- package/dist/src/languages/java/index.js +103 -0
- package/dist/src/languages/java/parser.d.ts +7 -0
- package/dist/src/languages/java/parser.d.ts.map +1 -0
- package/dist/src/languages/java/parser.js +50 -0
- package/dist/src/languages/java/semanticBuilder.d.ts +21 -0
- package/dist/src/languages/java/semanticBuilder.d.ts.map +1 -0
- package/dist/src/languages/java/semanticBuilder.js +358 -0
- package/dist/src/languages/javascript/annotationExtractor.d.ts +20 -0
- package/dist/src/languages/javascript/annotationExtractor.d.ts.map +1 -0
- package/dist/src/languages/javascript/annotationExtractor.js +94 -0
- package/dist/src/languages/javascript/assertionResolver.d.ts +18 -0
- package/dist/src/languages/javascript/assertionResolver.d.ts.map +1 -0
- package/dist/src/languages/javascript/assertionResolver.js +150 -0
- package/dist/src/languages/javascript/callResolver.d.ts +23 -0
- package/dist/src/languages/javascript/callResolver.d.ts.map +1 -0
- package/dist/src/languages/javascript/callResolver.js +236 -0
- package/dist/src/languages/javascript/httpInteractionExtractor.d.ts +23 -0
- package/dist/src/languages/javascript/httpInteractionExtractor.d.ts.map +1 -0
- package/dist/src/languages/javascript/httpInteractionExtractor.js +205 -0
- package/dist/src/languages/javascript/index.d.ts +20 -0
- package/dist/src/languages/javascript/index.d.ts.map +1 -0
- package/dist/src/languages/javascript/index.js +136 -0
- package/dist/src/languages/javascript/parser.d.ts +14 -0
- package/dist/src/languages/javascript/parser.d.ts.map +1 -0
- package/dist/src/languages/javascript/parser.js +38 -0
- package/dist/src/languages/javascript/symbolResolver.d.ts +31 -0
- package/dist/src/languages/javascript/symbolResolver.d.ts.map +1 -0
- package/dist/src/languages/javascript/symbolResolver.js +183 -0
- package/dist/src/languages/kotlin/index.d.ts +16 -0
- package/dist/src/languages/kotlin/index.d.ts.map +1 -0
- package/dist/src/languages/kotlin/index.js +151 -0
- package/dist/src/languages/kotlin/parser.d.ts +11 -0
- package/dist/src/languages/kotlin/parser.d.ts.map +1 -0
- package/dist/src/languages/kotlin/parser.js +74 -0
- package/dist/src/languages/python/index.d.ts +15 -0
- package/dist/src/languages/python/index.d.ts.map +1 -0
- package/dist/src/languages/python/index.js +293 -0
- package/dist/src/languages/ruby/index.d.ts +15 -0
- package/dist/src/languages/ruby/index.d.ts.map +1 -0
- package/dist/src/languages/ruby/index.js +274 -0
- package/dist/src/languages/shared/treeSitterUtils.d.ts +43 -0
- package/dist/src/languages/shared/treeSitterUtils.d.ts.map +1 -0
- package/dist/src/languages/shared/treeSitterUtils.js +100 -0
- package/dist/src/languages/typescript/index.d.ts +14 -0
- package/dist/src/languages/typescript/index.d.ts.map +1 -0
- package/dist/src/languages/typescript/index.js +25 -0
- package/dist/src/lib/index.d.ts +228 -0
- package/dist/src/lib/index.d.ts.map +1 -0
- package/dist/src/lib/index.js +486 -0
- package/dist/src/mcp/client/index.d.ts +37 -0
- package/dist/src/mcp/client/index.d.ts.map +1 -0
- package/dist/src/mcp/client/index.js +235 -0
- package/dist/src/mcp/config.d.ts +50 -0
- package/dist/src/mcp/config.d.ts.map +1 -0
- package/dist/src/mcp/config.js +125 -0
- package/dist/src/mcp/events.d.ts +24 -0
- package/dist/src/mcp/events.d.ts.map +1 -0
- package/dist/src/mcp/events.js +48 -0
- package/dist/src/mcp/fallback/index.d.ts +50 -0
- package/dist/src/mcp/fallback/index.d.ts.map +1 -0
- package/dist/src/mcp/fallback/index.js +216 -0
- package/dist/src/mcp/index.d.ts +67 -0
- package/dist/src/mcp/index.d.ts.map +1 -0
- package/dist/src/mcp/index.js +212 -0
- package/dist/src/mcp/normalizer.d.ts +21 -0
- package/dist/src/mcp/normalizer.d.ts.map +1 -0
- package/dist/src/mcp/normalizer.js +99 -0
- package/dist/src/mcp/prompts/index.d.ts +86 -0
- package/dist/src/mcp/prompts/index.d.ts.map +1 -0
- package/dist/src/mcp/prompts/index.js +304 -0
- package/dist/src/mcp/templates/index.d.ts +35 -0
- package/dist/src/mcp/templates/index.d.ts.map +1 -0
- package/dist/src/mcp/templates/index.js +143 -0
- package/dist/src/mcp/testing/mock-server/index.d.ts +47 -0
- package/dist/src/mcp/testing/mock-server/index.d.ts.map +1 -0
- package/dist/src/mcp/testing/mock-server/index.js +157 -0
- package/dist/src/mcp/types.d.ts +127 -0
- package/dist/src/mcp/types.d.ts.map +1 -0
- package/dist/src/mcp/types.js +8 -0
- package/dist/src/observability.d.ts +138 -0
- package/dist/src/observability.d.ts.map +1 -0
- package/dist/src/observability.js +519 -0
- package/dist/src/parameterCoverage.d.ts +75 -0
- package/dist/src/parameterCoverage.d.ts.map +1 -0
- package/dist/src/parameterCoverage.js +629 -0
- package/dist/src/perfResilienceCoverage.d.ts +155 -0
- package/dist/src/perfResilienceCoverage.d.ts.map +1 -0
- package/dist/src/perfResilienceCoverage.js +670 -0
- package/dist/src/pluginLoader.d.ts +51 -0
- package/dist/src/pluginLoader.d.ts.map +1 -0
- package/dist/src/pluginLoader.js +72 -0
- package/dist/src/publishing.d.ts +63 -0
- package/dist/src/publishing.d.ts.map +1 -0
- package/dist/src/publishing.js +379 -0
- package/dist/src/qualityGate.d.ts +58 -0
- package/dist/src/qualityGate.d.ts.map +1 -0
- package/dist/src/qualityGate.js +118 -0
- package/dist/src/reporting.d.ts +41 -0
- package/dist/src/reporting.d.ts.map +1 -0
- package/dist/src/reporting.js +278 -0
- package/dist/src/screenshots.d.ts +71 -0
- package/dist/src/screenshots.d.ts.map +1 -0
- package/dist/src/screenshots.js +141 -0
- package/dist/src/security/gate/index.d.ts +11 -0
- package/dist/src/security/gate/index.d.ts.map +1 -0
- package/dist/src/security/gate/index.js +65 -0
- package/dist/src/security/index.d.ts +30 -0
- package/dist/src/security/index.d.ts.map +1 -0
- package/dist/src/security/index.js +342 -0
- package/dist/src/security/normalizers/semgrep.d.ts +10 -0
- package/dist/src/security/normalizers/semgrep.d.ts.map +1 -0
- package/dist/src/security/normalizers/semgrep.js +104 -0
- package/dist/src/security/normalizers/trivy.d.ts +10 -0
- package/dist/src/security/normalizers/trivy.d.ts.map +1 -0
- package/dist/src/security/normalizers/trivy.js +78 -0
- package/dist/src/security/normalizers/zap.d.ts +10 -0
- package/dist/src/security/normalizers/zap.d.ts.map +1 -0
- package/dist/src/security/normalizers/zap.js +104 -0
- package/dist/src/security/scanners/semgrep.d.ts +6 -0
- package/dist/src/security/scanners/semgrep.d.ts.map +1 -0
- package/dist/src/security/scanners/semgrep.js +125 -0
- package/dist/src/security/scanners/trivy.d.ts +6 -0
- package/dist/src/security/scanners/trivy.d.ts.map +1 -0
- package/dist/src/security/scanners/trivy.js +115 -0
- package/dist/src/security/scanners/zap.d.ts +6 -0
- package/dist/src/security/scanners/zap.d.ts.map +1 -0
- package/dist/src/security/scanners/zap.js +135 -0
- package/dist/src/security/types.d.ts +146 -0
- package/dist/src/security/types.d.ts.map +1 -0
- package/dist/src/security/types.js +6 -0
- package/dist/src/securityCoverage.d.ts +116 -0
- package/dist/src/securityCoverage.d.ts.map +1 -0
- package/dist/src/securityCoverage.js +725 -0
- package/dist/src/summary/buildSummary.d.ts +28 -0
- package/dist/src/summary/buildSummary.d.ts.map +1 -0
- package/dist/src/summary/buildSummary.js +257 -0
- package/dist/src/summary/evaluateMetrics.d.ts +31 -0
- package/dist/src/summary/evaluateMetrics.d.ts.map +1 -0
- package/dist/src/summary/evaluateMetrics.js +118 -0
- package/dist/src/summary/index.d.ts +10 -0
- package/dist/src/summary/index.d.ts.map +1 -0
- package/dist/src/summary/index.js +22 -0
- package/dist/src/summary/markdownRenderer.d.ts +139 -0
- package/dist/src/summary/markdownRenderer.d.ts.map +1 -0
- package/dist/src/summary/markdownRenderer.js +459 -0
- package/dist/src/summary/prSummary.d.ts +24 -0
- package/dist/src/summary/prSummary.d.ts.map +1 -0
- package/dist/src/summary/prSummary.js +233 -0
- package/dist/src/summary/summaryTypes.d.ts +35 -0
- package/dist/src/summary/summaryTypes.d.ts.map +1 -0
- package/dist/src/summary/summaryTypes.js +27 -0
- package/package.json +84 -0
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP integration – mock MCP server.
|
|
4
|
+
*
|
|
5
|
+
* This module provides a deterministic mock MCP server for testing.
|
|
6
|
+
* It can operate in two modes:
|
|
7
|
+
*
|
|
8
|
+
* 1. **HTTP mode** – starts an HTTP server on a configurable port that
|
|
9
|
+
* accepts POST /mcp requests and returns deterministic AI responses.
|
|
10
|
+
*
|
|
11
|
+
* 2. **stdio mode** – a standalone Node script that reads a JSON prompt
|
|
12
|
+
* from stdin and writes a deterministic JSON response to stdout.
|
|
13
|
+
*
|
|
14
|
+
* The mock can be configured to:
|
|
15
|
+
* - Return normal deterministic responses
|
|
16
|
+
* - Simulate errors (status 500)
|
|
17
|
+
* - Simulate timeouts (delayed response)
|
|
18
|
+
* - Return malformed JSON
|
|
19
|
+
*/
|
|
20
|
+
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
21
|
+
if (k2 === undefined) k2 = k;
|
|
22
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
23
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
24
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
25
|
+
}
|
|
26
|
+
Object.defineProperty(o, k2, desc);
|
|
27
|
+
}) : (function(o, m, k, k2) {
|
|
28
|
+
if (k2 === undefined) k2 = k;
|
|
29
|
+
o[k2] = m[k];
|
|
30
|
+
}));
|
|
31
|
+
var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
|
|
32
|
+
Object.defineProperty(o, "default", { enumerable: true, value: v });
|
|
33
|
+
}) : function(o, v) {
|
|
34
|
+
o["default"] = v;
|
|
35
|
+
});
|
|
36
|
+
var __importStar = (this && this.__importStar) || (function () {
|
|
37
|
+
var ownKeys = function(o) {
|
|
38
|
+
ownKeys = Object.getOwnPropertyNames || function (o) {
|
|
39
|
+
var ar = [];
|
|
40
|
+
for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
|
|
41
|
+
return ar;
|
|
42
|
+
};
|
|
43
|
+
return ownKeys(o);
|
|
44
|
+
};
|
|
45
|
+
return function (mod) {
|
|
46
|
+
if (mod && mod.__esModule) return mod;
|
|
47
|
+
var result = {};
|
|
48
|
+
if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
|
|
49
|
+
__setModuleDefault(result, mod);
|
|
50
|
+
return result;
|
|
51
|
+
};
|
|
52
|
+
})();
|
|
53
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
54
|
+
exports.buildMockAnalysisResponse = buildMockAnalysisResponse;
|
|
55
|
+
exports.startMockMcpServer = startMockMcpServer;
|
|
56
|
+
const http = __importStar(require("http"));
|
|
57
|
+
/**
|
|
58
|
+
* Build a deterministic mock NormalizedAiAnalysis for a given category.
|
|
59
|
+
*/
|
|
60
|
+
function buildMockAnalysisResponse(category, behaviour = 'normal') {
|
|
61
|
+
if (behaviour !== 'normal') {
|
|
62
|
+
throw new Error(`Mock behaviour "${behaviour}" should be handled by the server layer`);
|
|
63
|
+
}
|
|
64
|
+
return {
|
|
65
|
+
summary: `Mock AI analysis for category: ${category}. All systems nominal.`,
|
|
66
|
+
keyFindings: [
|
|
67
|
+
`Coverage analysis completed for ${category}`,
|
|
68
|
+
'No critical gaps detected in mock mode',
|
|
69
|
+
],
|
|
70
|
+
topRisks: [`Mock risk item for ${category}`],
|
|
71
|
+
recommendedActions: [
|
|
72
|
+
`Review ${category} coverage results`,
|
|
73
|
+
'Add tests for any uncovered areas',
|
|
74
|
+
],
|
|
75
|
+
missingCoverageAreas: [],
|
|
76
|
+
likelyRootCauses: [],
|
|
77
|
+
confidence: 'high',
|
|
78
|
+
isFallback: false,
|
|
79
|
+
category,
|
|
80
|
+
};
|
|
81
|
+
}
|
|
82
|
+
// ─── HTTP mock server ─────────────────────────────────────────────────────────
|
|
83
|
+
// Wait effectively indefinitely — rely on the client's configured timeout.
|
|
84
|
+
// 24 hours ensures the server never resolves before the client times out.
|
|
85
|
+
const WAIT_INDEFINITELY_MS = 24 * 60 * 60 * 1000;
|
|
86
|
+
/**
|
|
87
|
+
* Start an HTTP mock MCP server.
|
|
88
|
+
*
|
|
89
|
+
* @example
|
|
90
|
+
* const server = await startMockMcpServer({ port: 3099 });
|
|
91
|
+
* // use server.url in test MCP config
|
|
92
|
+
* await server.close();
|
|
93
|
+
*/
|
|
94
|
+
async function startMockMcpServer(options = {}) {
|
|
95
|
+
var _a, _b, _c;
|
|
96
|
+
let behaviour = (_a = options.behaviour) !== null && _a !== void 0 ? _a : 'normal';
|
|
97
|
+
let delayMs = (_b = options.delayMs) !== null && _b !== void 0 ? _b : 0;
|
|
98
|
+
const server = http.createServer((req, res) => {
|
|
99
|
+
if (req.method !== 'POST') {
|
|
100
|
+
res.writeHead(405, { 'Content-Type': 'application/json' });
|
|
101
|
+
res.end(JSON.stringify({ error: 'Method not allowed' }));
|
|
102
|
+
return;
|
|
103
|
+
}
|
|
104
|
+
const chunks = [];
|
|
105
|
+
req.on('data', (c) => chunks.push(c));
|
|
106
|
+
req.on('end', () => {
|
|
107
|
+
const respond = () => {
|
|
108
|
+
var _a;
|
|
109
|
+
try {
|
|
110
|
+
const body = Buffer.concat(chunks).toString('utf-8');
|
|
111
|
+
let parsed = {};
|
|
112
|
+
try {
|
|
113
|
+
parsed = JSON.parse(body);
|
|
114
|
+
}
|
|
115
|
+
catch { /* ignore parse errors */ }
|
|
116
|
+
const category = (_a = parsed.category) !== null && _a !== void 0 ? _a : 'unknown';
|
|
117
|
+
if (behaviour === 'error') {
|
|
118
|
+
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
119
|
+
res.end(JSON.stringify({ error: 'Mock server error' }));
|
|
120
|
+
return;
|
|
121
|
+
}
|
|
122
|
+
if (behaviour === 'malformed') {
|
|
123
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
124
|
+
res.end('not-valid-json{{{');
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const responseBody = JSON.stringify(buildMockAnalysisResponse(category));
|
|
128
|
+
res.writeHead(200, { 'Content-Type': 'application/json' });
|
|
129
|
+
res.end(responseBody);
|
|
130
|
+
}
|
|
131
|
+
catch (err) {
|
|
132
|
+
res.writeHead(500, { 'Content-Type': 'application/json' });
|
|
133
|
+
res.end(JSON.stringify({ error: String(err) }));
|
|
134
|
+
}
|
|
135
|
+
};
|
|
136
|
+
if (behaviour === 'timeout' || delayMs > 0) {
|
|
137
|
+
setTimeout(respond, delayMs || WAIT_INDEFINITELY_MS);
|
|
138
|
+
}
|
|
139
|
+
else {
|
|
140
|
+
respond();
|
|
141
|
+
}
|
|
142
|
+
});
|
|
143
|
+
});
|
|
144
|
+
const port = (_c = options.port) !== null && _c !== void 0 ? _c : 0;
|
|
145
|
+
await new Promise((resolve) => server.listen(port, '127.0.0.1', resolve));
|
|
146
|
+
const address = server.address();
|
|
147
|
+
const url = `http://127.0.0.1:${address.port}/mcp`;
|
|
148
|
+
return {
|
|
149
|
+
url,
|
|
150
|
+
close: () => new Promise((resolve, reject) => server.close((err) => (err ? reject(err) : resolve()))),
|
|
151
|
+
setBehaviour(newBehaviour, newDelayMs) {
|
|
152
|
+
behaviour = newBehaviour;
|
|
153
|
+
if (newDelayMs !== undefined)
|
|
154
|
+
delayMs = newDelayMs;
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
@@ -0,0 +1,127 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP integration – shared types and schemas.
|
|
3
|
+
*
|
|
4
|
+
* Defines all shared interfaces consumed by the MCP client, prompt builders,
|
|
5
|
+
* response normalizer, template mapper, event adapter, and fallback interpreter.
|
|
6
|
+
*/
|
|
7
|
+
/** Supported MCP transport modes */
|
|
8
|
+
export type McpTransport = 'stdio' | 'http';
|
|
9
|
+
/** Configuration for a single MCP server */
|
|
10
|
+
export interface McpServerConfig {
|
|
11
|
+
/** Whether this server is active */
|
|
12
|
+
enabled?: boolean;
|
|
13
|
+
/** Transport to use for this server */
|
|
14
|
+
transport?: McpTransport;
|
|
15
|
+
/** Command to spawn when transport is "stdio" */
|
|
16
|
+
command?: string;
|
|
17
|
+
/** Arguments for the stdio command */
|
|
18
|
+
args?: string[];
|
|
19
|
+
/** HTTP URL when transport is "http" */
|
|
20
|
+
url?: string;
|
|
21
|
+
/** Request timeout override (ms) */
|
|
22
|
+
timeoutMs?: number;
|
|
23
|
+
}
|
|
24
|
+
/** Named servers that can be enabled per analysis category */
|
|
25
|
+
export interface McpServersConfig {
|
|
26
|
+
coverageSummary?: McpServerConfig;
|
|
27
|
+
securityScan?: McpServerConfig;
|
|
28
|
+
performanceAnalysis?: McpServerConfig;
|
|
29
|
+
compatibilityAnalysis?: McpServerConfig;
|
|
30
|
+
[key: string]: McpServerConfig | undefined;
|
|
31
|
+
}
|
|
32
|
+
/** Retry policy for MCP requests */
|
|
33
|
+
export interface McpRetryPolicy {
|
|
34
|
+
/** Number of retry attempts (default: 2) */
|
|
35
|
+
maxRetries?: number;
|
|
36
|
+
/** Base delay between retries in ms (default: 500) */
|
|
37
|
+
retryDelayMs?: number;
|
|
38
|
+
}
|
|
39
|
+
/** Top-level MCP integration configuration block */
|
|
40
|
+
export interface McpConfig {
|
|
41
|
+
/** Globally enable or disable all MCP integrations */
|
|
42
|
+
enabled?: boolean;
|
|
43
|
+
/** Default transport when a server does not specify one */
|
|
44
|
+
defaultTransport?: McpTransport;
|
|
45
|
+
/** Default request timeout in ms (default: 30000) */
|
|
46
|
+
timeoutMs?: number;
|
|
47
|
+
/** Per-server configuration */
|
|
48
|
+
servers?: McpServersConfig;
|
|
49
|
+
/** Retry policy applied to all requests */
|
|
50
|
+
retryPolicy?: McpRetryPolicy;
|
|
51
|
+
/** Maximum prompt payload size in bytes (default: 1 MB) */
|
|
52
|
+
maxPayloadBytes?: number;
|
|
53
|
+
/** Allowlist of server URL prefixes (empty = allow all) */
|
|
54
|
+
serverAllowlist?: string[];
|
|
55
|
+
/** Allowlist of transport types (empty = allow all) */
|
|
56
|
+
transportAllowlist?: McpTransport[];
|
|
57
|
+
}
|
|
58
|
+
/** Valid scan event types */
|
|
59
|
+
export type AnalysisEventType = 'scan_started' | 'file_analyzed' | 'endpoint_detected' | 'coverage_gap_detected' | 'security_finding_detected' | 'performance_issue_detected' | 'scan_completed';
|
|
60
|
+
/** A single scan event emitted during analysis */
|
|
61
|
+
export interface AnalysisEvent {
|
|
62
|
+
type: AnalysisEventType;
|
|
63
|
+
timestamp: number;
|
|
64
|
+
payload: Record<string, unknown>;
|
|
65
|
+
}
|
|
66
|
+
/** Prompt request sent to an MCP server */
|
|
67
|
+
export interface McpPromptRequest {
|
|
68
|
+
/** Analysis category identifier */
|
|
69
|
+
category: string;
|
|
70
|
+
/** Human-readable prompt text */
|
|
71
|
+
prompt: string;
|
|
72
|
+
/** Structured context data */
|
|
73
|
+
context: Record<string, unknown>;
|
|
74
|
+
/** Accumulated events from the real-time feed */
|
|
75
|
+
events?: AnalysisEvent[];
|
|
76
|
+
}
|
|
77
|
+
/** Raw response received from an MCP server */
|
|
78
|
+
export interface McpRawResponse {
|
|
79
|
+
/** Whether the server returned a usable result */
|
|
80
|
+
ok: boolean;
|
|
81
|
+
/** Raw text response from the server */
|
|
82
|
+
content?: string;
|
|
83
|
+
/** Error message when ok=false */
|
|
84
|
+
error?: string;
|
|
85
|
+
/** Round-trip latency in ms */
|
|
86
|
+
latencyMs?: number;
|
|
87
|
+
}
|
|
88
|
+
/** Confidence level for AI-generated analysis */
|
|
89
|
+
export type AiConfidence = 'low' | 'medium' | 'high';
|
|
90
|
+
/**
|
|
91
|
+
* Normalized AI analysis result.
|
|
92
|
+
* The analyzer NEVER renders raw MCP responses — all outputs are mapped to
|
|
93
|
+
* this schema first.
|
|
94
|
+
*/
|
|
95
|
+
export interface NormalizedAiAnalysis {
|
|
96
|
+
/** One-paragraph executive summary */
|
|
97
|
+
summary: string;
|
|
98
|
+
/** Bullet-point key findings */
|
|
99
|
+
keyFindings: string[];
|
|
100
|
+
/** Top risk items ordered by severity */
|
|
101
|
+
topRisks: string[];
|
|
102
|
+
/** Concrete recommended actions */
|
|
103
|
+
recommendedActions: string[];
|
|
104
|
+
/** Coverage gaps identified (optional, coverage analysis only) */
|
|
105
|
+
missingCoverageAreas?: string[];
|
|
106
|
+
/** Likely root-cause hypotheses (optional) */
|
|
107
|
+
likelyRootCauses?: string[];
|
|
108
|
+
/** Model's confidence in the analysis */
|
|
109
|
+
confidence?: AiConfidence;
|
|
110
|
+
/** Whether this result came from the fallback interpreter */
|
|
111
|
+
isFallback?: boolean;
|
|
112
|
+
/** Category that was analyzed */
|
|
113
|
+
category?: string;
|
|
114
|
+
}
|
|
115
|
+
/** Context passed to template mappers */
|
|
116
|
+
export interface TemplateContext {
|
|
117
|
+
analysis: NormalizedAiAnalysis;
|
|
118
|
+
/** Category identifier (e.g. "endpoint", "security-scan") */
|
|
119
|
+
category: string;
|
|
120
|
+
/** Human-readable category title */
|
|
121
|
+
categoryTitle?: string;
|
|
122
|
+
/** Whether MCP was enabled for this analysis */
|
|
123
|
+
mcpEnabled?: boolean;
|
|
124
|
+
/** Server name / URL used (for metadata) */
|
|
125
|
+
serverRef?: string;
|
|
126
|
+
}
|
|
127
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../src/mcp/types.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
/**
|
|
3
|
+
* MCP integration – shared types and schemas.
|
|
4
|
+
*
|
|
5
|
+
* Defines all shared interfaces consumed by the MCP client, prompt builders,
|
|
6
|
+
* response normalizer, template mapper, event adapter, and fallback interpreter.
|
|
7
|
+
*/
|
|
8
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
@@ -0,0 +1,138 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Observability module — structured logging, Prometheus metrics, and OpenTelemetry tracing.
|
|
3
|
+
*
|
|
4
|
+
* Usage:
|
|
5
|
+
* import { createLogger, initMetrics, startMetricsServer, recordCoverageMetrics,
|
|
6
|
+
* recordSecurityScanMetrics, initTracing, startSpan, endSpan } from './observability';
|
|
7
|
+
*/
|
|
8
|
+
import * as http from 'http';
|
|
9
|
+
import pino from 'pino';
|
|
10
|
+
import { Registry } from 'prom-client';
|
|
11
|
+
import type { CoverageResult } from './reporting';
|
|
12
|
+
/** Shape of SecurityScanSummary used for metrics — mirrors src/security/types.ts. */
|
|
13
|
+
export interface SecurityScanMetricsSummary {
|
|
14
|
+
totalFindings: number;
|
|
15
|
+
bySeverity: {
|
|
16
|
+
LOW: number;
|
|
17
|
+
MEDIUM: number;
|
|
18
|
+
HIGH: number;
|
|
19
|
+
CRITICAL: number;
|
|
20
|
+
};
|
|
21
|
+
byCategory: Record<string, number>;
|
|
22
|
+
byScanner: Record<string, number>;
|
|
23
|
+
scannersRun: string[];
|
|
24
|
+
gateResult?: {
|
|
25
|
+
passed: boolean;
|
|
26
|
+
reasons: string[];
|
|
27
|
+
};
|
|
28
|
+
/** Individual findings list — present when the full SecurityScanSummary is passed. */
|
|
29
|
+
findings?: Array<{
|
|
30
|
+
severity: string;
|
|
31
|
+
category: string;
|
|
32
|
+
scanner: string;
|
|
33
|
+
}>;
|
|
34
|
+
}
|
|
35
|
+
export type LogLevel = 'trace' | 'debug' | 'info' | 'warn' | 'error' | 'fatal' | 'silent';
|
|
36
|
+
/** Create a pino logger at the specified level (defaults to 'info'). */
|
|
37
|
+
export declare function createLogger(level?: LogLevel): pino.Logger;
|
|
38
|
+
/** Initialise (or replace) the module-level logger. */
|
|
39
|
+
export declare function initLogger(level: LogLevel): void;
|
|
40
|
+
/** Return the current module-level logger. */
|
|
41
|
+
export declare function getLogger(): pino.Logger;
|
|
42
|
+
/** Log a coverage result at INFO level with structured fields. */
|
|
43
|
+
export declare function logCoverageResult(logger: pino.Logger, result: CoverageResult, threshold?: number): void;
|
|
44
|
+
/** Log a threshold breach at WARN level. */
|
|
45
|
+
export declare function logThresholdBreach(logger: pino.Logger, coverageType: string, coveragePercent: number, threshold: number): void;
|
|
46
|
+
/**
|
|
47
|
+
* Initialise a fresh Prometheus registry and register the coverage gauges.
|
|
48
|
+
* Call once before recording metrics.
|
|
49
|
+
*/
|
|
50
|
+
export declare function initMetrics(serviceName?: string): Registry;
|
|
51
|
+
/** Return the current registry (null if not yet initialised). */
|
|
52
|
+
export declare function getRegistry(): Registry | null;
|
|
53
|
+
/**
|
|
54
|
+
* Record coverage results into the Prometheus gauges.
|
|
55
|
+
* Must be called after initMetrics().
|
|
56
|
+
*/
|
|
57
|
+
export declare function recordCoverageMetrics(results: CoverageResult[], thresholds?: Record<string, number>, serviceName?: string): void;
|
|
58
|
+
/**
|
|
59
|
+
* Record security scanning results into dedicated Prometheus gauges.
|
|
60
|
+
*
|
|
61
|
+
* Exposes:
|
|
62
|
+
* - `api_security_findings_total{service, severity, category, scanner}` — count per label combination
|
|
63
|
+
* - `api_security_gate_passed{service}` — 1 = passed, 0 = failed, -1 = not configured
|
|
64
|
+
* - `api_security_scan_timestamp_seconds{service}` — Unix timestamp of this scan
|
|
65
|
+
*
|
|
66
|
+
* Must be called after initMetrics().
|
|
67
|
+
*/
|
|
68
|
+
export declare function recordSecurityScanMetrics(summary: SecurityScanMetricsSummary, serviceName?: string): void;
|
|
69
|
+
/** Shape of IntelligenceSummary used for metrics recording. */
|
|
70
|
+
export interface IntelligenceMetricsSummary {
|
|
71
|
+
projectName: string;
|
|
72
|
+
totalFindings: number;
|
|
73
|
+
totalRecommendations: number;
|
|
74
|
+
recommendationsByPriority: Record<string, number>;
|
|
75
|
+
maxRiskScore: number;
|
|
76
|
+
avgRiskScore: number;
|
|
77
|
+
criticalUncoveredItems: number;
|
|
78
|
+
unprotectedSecurityFindings: number;
|
|
79
|
+
languages?: string[];
|
|
80
|
+
frameworks?: string[];
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Record coverage intelligence results into dedicated Prometheus gauges.
|
|
84
|
+
*
|
|
85
|
+
* Must be called after initMetrics().
|
|
86
|
+
*/
|
|
87
|
+
export declare function recordIntelligenceMetrics(summary: IntelligenceMetricsSummary, projectName?: string): void;
|
|
88
|
+
/**
|
|
89
|
+
* Start an HTTP server that exposes /metrics in Prometheus text format.
|
|
90
|
+
* Resolves with the bound server instance once the port is open.
|
|
91
|
+
*/
|
|
92
|
+
export declare function startMetricsServer(port: number): Promise<http.Server>;
|
|
93
|
+
/** Stop the metrics server if it is running. */
|
|
94
|
+
export declare function stopMetricsServer(): Promise<void>;
|
|
95
|
+
export interface TraceSpan {
|
|
96
|
+
name: string;
|
|
97
|
+
startTime: number;
|
|
98
|
+
attributes: Record<string, string | number | boolean>;
|
|
99
|
+
end(attributes?: Record<string, string | number | boolean>): void;
|
|
100
|
+
ended: boolean;
|
|
101
|
+
endTime?: number;
|
|
102
|
+
}
|
|
103
|
+
/** Enable or disable tracing. If endpoint is provided, spans are POSTed via OTLP HTTP. */
|
|
104
|
+
export declare function initTracing(enabled: boolean, otlpEndpoint?: string): void;
|
|
105
|
+
/** Start a new span. No-op if tracing is disabled. */
|
|
106
|
+
export declare function startSpan(name: string, attributes?: Record<string, string | number | boolean>): TraceSpan;
|
|
107
|
+
/** Return all completed spans collected in memory. */
|
|
108
|
+
export declare function getCollectedSpans(): TraceSpan[];
|
|
109
|
+
/** Clear the in-memory span buffer (useful in tests). */
|
|
110
|
+
export declare function clearCollectedSpans(): void;
|
|
111
|
+
export interface ObservabilityInfo {
|
|
112
|
+
metricsUrl: string | null;
|
|
113
|
+
tracingEnabled: boolean;
|
|
114
|
+
otlpEndpoint: string | null;
|
|
115
|
+
metricNames: {
|
|
116
|
+
total: string;
|
|
117
|
+
covered: string;
|
|
118
|
+
ratio: string;
|
|
119
|
+
thresholdFailure: string;
|
|
120
|
+
};
|
|
121
|
+
securityMetricNames?: {
|
|
122
|
+
findings: string;
|
|
123
|
+
gatePassed: string;
|
|
124
|
+
scanTimestamp: string;
|
|
125
|
+
};
|
|
126
|
+
intelligenceMetricNames?: {
|
|
127
|
+
functionalFindingsTotal: string;
|
|
128
|
+
missingTestRecommendationsTotal: string;
|
|
129
|
+
missingTestByPriority: string;
|
|
130
|
+
riskScoreMax: string;
|
|
131
|
+
riskScoreAvg: string;
|
|
132
|
+
criticalUncoveredItems: string;
|
|
133
|
+
unprotectedSecurityFindings: string;
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
/** Build an observability info object for embedding in reports. */
|
|
137
|
+
export declare function buildObservabilityInfo(metricsPort?: number): ObservabilityInfo;
|
|
138
|
+
//# sourceMappingURL=observability.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"observability.d.ts","sourceRoot":"","sources":["../../src/observability.ts"],"names":[],"mappings":"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"}
|