@achieveai/azuredevops-mcp 1.3.17 → 1.3.18
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/dist/Interfaces/Common.js +10 -1
- package/dist/Interfaces/Common.js.map +1 -1
- package/dist/Services/AzureDevOpsService.js +234 -32
- package/dist/Services/AzureDevOpsService.js.map +1 -1
- package/dist/Services/BoardsSprintsService.js +105 -13
- package/dist/Services/BoardsSprintsService.js.map +1 -1
- package/dist/Services/BuildService.js +151 -24
- package/dist/Services/BuildService.js.map +1 -1
- package/dist/Services/GitService.js +26 -3
- package/dist/Services/GitService.js.map +1 -1
- package/dist/Services/ProjectService.js +47 -6
- package/dist/Services/ProjectService.js.map +1 -1
- package/dist/Services/WorkItemService.js +183 -142
- package/dist/Services/WorkItemService.js.map +1 -1
- package/dist/Tools/BoardsSprintsTools.js +2 -8
- package/dist/Tools/BoardsSprintsTools.js.map +1 -1
- package/dist/Tools/BuildTools.js +5 -8
- package/dist/Tools/BuildTools.js.map +1 -1
- package/dist/Tools/WorkItemTools.js +111 -74
- package/dist/Tools/WorkItemTools.js.map +1 -1
- package/dist/index.js +22 -12
- package/dist/index.js.map +1 -1
- package/dist/utils/formatHelpers.js +15 -0
- package/dist/utils/formatHelpers.js.map +1 -1
- package/package.json +2 -2
- package/dist/Services/BuildService.project.test.js +0 -91
- package/dist/Services/BuildService.project.test.js.map +0 -1
- package/dist/Services/GitService.project.test.js +0 -407
- package/dist/Services/GitService.project.test.js.map +0 -1
- package/dist/package.json +0 -59
- package/dist/src/Interfaces/AIAssisted.js +0 -3
- package/dist/src/Interfaces/AIAssisted.js.map +0 -1
- package/dist/src/Interfaces/ArtifactManagement.js +0 -3
- package/dist/src/Interfaces/ArtifactManagement.js.map +0 -1
- package/dist/src/Interfaces/AzureDevOps.js +0 -3
- package/dist/src/Interfaces/AzureDevOps.js.map +0 -1
- package/dist/src/Interfaces/BoardsAndSprints.js +0 -3
- package/dist/src/Interfaces/BoardsAndSprints.js.map +0 -1
- package/dist/src/Interfaces/CodeAndRepositories.js +0 -3
- package/dist/src/Interfaces/CodeAndRepositories.js.map +0 -1
- package/dist/src/Interfaces/Common.js +0 -134
- package/dist/src/Interfaces/Common.js.map +0 -1
- package/dist/src/Interfaces/CostResourceManagement.js +0 -3
- package/dist/src/Interfaces/CostResourceManagement.js.map +0 -1
- package/dist/src/Interfaces/DevSecOps.js +0 -3
- package/dist/src/Interfaces/DevSecOps.js.map +0 -1
- package/dist/src/Interfaces/ExternalIntegrations.js +0 -3
- package/dist/src/Interfaces/ExternalIntegrations.js.map +0 -1
- package/dist/src/Interfaces/HybridCrossPlatform.js +0 -3
- package/dist/src/Interfaces/HybridCrossPlatform.js.map +0 -1
- package/dist/src/Interfaces/Pipelines.js +0 -3
- package/dist/src/Interfaces/Pipelines.js.map +0 -1
- package/dist/src/Interfaces/ProjectManagement.js +0 -3
- package/dist/src/Interfaces/ProjectManagement.js.map +0 -1
- package/dist/src/Interfaces/TestingCapabilities.js +0 -3
- package/dist/src/Interfaces/TestingCapabilities.js.map +0 -1
- package/dist/src/Interfaces/Wiki.js +0 -3
- package/dist/src/Interfaces/Wiki.js.map +0 -1
- package/dist/src/Interfaces/WorkItems.js +0 -3
- package/dist/src/Interfaces/WorkItems.js.map +0 -1
- package/dist/src/Services/AIAssistedDevelopmentService.js +0 -195
- package/dist/src/Services/AIAssistedDevelopmentService.js.map +0 -1
- package/dist/src/Services/ArtifactManagementService.js +0 -346
- package/dist/src/Services/ArtifactManagementService.js.map +0 -1
- package/dist/src/Services/AzureDevOpsService.js +0 -385
- package/dist/src/Services/AzureDevOpsService.js.map +0 -1
- package/dist/src/Services/BoardsSprintsService.js +0 -339
- package/dist/src/Services/BoardsSprintsService.js.map +0 -1
- package/dist/src/Services/BuildService.js +0 -405
- package/dist/src/Services/BuildService.js.map +0 -1
- package/dist/src/Services/DevSecOpsService.js +0 -307
- package/dist/src/Services/DevSecOpsService.js.map +0 -1
- package/dist/src/Services/EntraAuthHandler.js +0 -337
- package/dist/src/Services/EntraAuthHandler.js.map +0 -1
- package/dist/src/Services/GitService.js +0 -1595
- package/dist/src/Services/GitService.js.map +0 -1
- package/dist/src/Services/ProjectService.js +0 -257
- package/dist/src/Services/ProjectService.js.map +0 -1
- package/dist/src/Services/TestingCapabilitiesService.js +0 -149
- package/dist/src/Services/TestingCapabilitiesService.js.map +0 -1
- package/dist/src/Services/WikiService.js +0 -90
- package/dist/src/Services/WikiService.js.map +0 -1
- package/dist/src/Services/WorkItemService.js +0 -885
- package/dist/src/Services/WorkItemService.js.map +0 -1
- package/dist/src/Tools/AIAssistedDevelopmentTools.js +0 -137
- package/dist/src/Tools/AIAssistedDevelopmentTools.js.map +0 -1
- package/dist/src/Tools/ArtifactManagementTools.js +0 -140
- package/dist/src/Tools/ArtifactManagementTools.js.map +0 -1
- package/dist/src/Tools/BoardsSprintsTools.js +0 -338
- package/dist/src/Tools/BoardsSprintsTools.js.map +0 -1
- package/dist/src/Tools/BuildTools.js +0 -468
- package/dist/src/Tools/BuildTools.js.map +0 -1
- package/dist/src/Tools/DevSecOpsTools.js +0 -147
- package/dist/src/Tools/DevSecOpsTools.js.map +0 -1
- package/dist/src/Tools/GitTools.js +0 -1475
- package/dist/src/Tools/GitTools.js.map +0 -1
- package/dist/src/Tools/ProjectTools.js +0 -360
- package/dist/src/Tools/ProjectTools.js.map +0 -1
- package/dist/src/Tools/TestingCapabilitiesTools.js +0 -157
- package/dist/src/Tools/TestingCapabilitiesTools.js.map +0 -1
- package/dist/src/Tools/WikiTools.js +0 -137
- package/dist/src/Tools/WikiTools.js.map +0 -1
- package/dist/src/Tools/WorkItemTools.js +0 -862
- package/dist/src/Tools/WorkItemTools.js.map +0 -1
- package/dist/src/config.js +0 -176
- package/dist/src/config.js.map +0 -1
- package/dist/src/index.js +0 -1716
- package/dist/src/index.js.map +0 -1
- package/dist/src/utils/formatHelpers.js +0 -257
- package/dist/src/utils/formatHelpers.js.map +0 -1
- package/dist/src/utils/getClassMethods.js +0 -8
- package/dist/src/utils/getClassMethods.js.map +0 -1
- package/dist/src/utils/repositoryResolver.js +0 -40
- package/dist/src/utils/repositoryResolver.js.map +0 -1
|
@@ -1,134 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.formatMcpResponse = formatMcpResponse;
|
|
4
|
-
exports.setErrorContext = setErrorContext;
|
|
5
|
-
exports.formatErrorResponse = formatErrorResponse;
|
|
6
|
-
const config_1 = require("../config");
|
|
7
|
-
const child_process_1 = require("child_process");
|
|
8
|
-
/**
|
|
9
|
-
* Formats a response for MCP compatibility
|
|
10
|
-
* @param data The data to format
|
|
11
|
-
* @param message Optional message to display (if it contains markdown formatting with --- or tables, it will be used as the primary content)
|
|
12
|
-
* @param isError Whether this is an error response
|
|
13
|
-
* @param includeStructuredContent Whether to include structuredContent field (MCP standard)
|
|
14
|
-
* @returns MCP-compatible response
|
|
15
|
-
*/
|
|
16
|
-
function formatMcpResponse(data, message, isError = false, includeStructuredContent = false) {
|
|
17
|
-
// When a message is provided, use it as the sole content (markdown-formatted tools)
|
|
18
|
-
// Only fall back to JSON dump when no message is provided at all
|
|
19
|
-
const hasMessage = message && message.length > 0;
|
|
20
|
-
const throttleInfo = data?.throttleInfo;
|
|
21
|
-
const throttleBanner = throttleInfo?.throttled
|
|
22
|
-
? `Warning: Azure DevOps throttled this operation. Waited ${(throttleInfo.totalWaitMs / 1000).toFixed(1)}s across ${throttleInfo.retryCount} retr${throttleInfo.retryCount === 1 ? 'y' : 'ies'} before continuing. This usually means too many requests are being sent in a short period.\n\n---\n\n`
|
|
23
|
-
: '';
|
|
24
|
-
const response = {
|
|
25
|
-
content: hasMessage
|
|
26
|
-
? [{ type: "text", text: `${throttleBanner}${message}` }]
|
|
27
|
-
: [
|
|
28
|
-
{ type: "text", text: isError ? "Error occurred" : "Request successful" },
|
|
29
|
-
{ type: "text", text: typeof data === 'string' ? data : JSON.stringify(data, null, 2) }
|
|
30
|
-
],
|
|
31
|
-
rawData: data,
|
|
32
|
-
isError
|
|
33
|
-
};
|
|
34
|
-
// Add structured content if requested AND env toggle is enabled
|
|
35
|
-
if (includeStructuredContent && (0, config_1.isStructuredContentEnabled)() && data) {
|
|
36
|
-
response.structuredContent = {
|
|
37
|
-
format: "application/json",
|
|
38
|
-
data: data
|
|
39
|
-
};
|
|
40
|
-
}
|
|
41
|
-
return response;
|
|
42
|
-
}
|
|
43
|
-
/**
|
|
44
|
-
* Attempts to detect Azure DevOps org/project/repo from git remotes in the current working directory.
|
|
45
|
-
* Returns null if git is unavailable or no ADO remote is found.
|
|
46
|
-
*/
|
|
47
|
-
function detectGitRemoteInfo() {
|
|
48
|
-
try {
|
|
49
|
-
const output = (0, child_process_1.execSync)('git remote -v', { encoding: 'utf8', timeout: 5000, stdio: ['pipe', 'pipe', 'pipe'] });
|
|
50
|
-
// dev.azure.com format: https://dev.azure.com/{org}/{project}/_git/{repo}
|
|
51
|
-
const devMatch = output.match(/https?:\/\/dev\.azure\.com\/([^/]+)\/([^/]+)\/_git\/([^\s]+)/);
|
|
52
|
-
if (devMatch) {
|
|
53
|
-
return { orgUrl: `https://dev.azure.com/${devMatch[1]}`, project: decodeURIComponent(devMatch[2]), repository: decodeURIComponent(devMatch[3]) };
|
|
54
|
-
}
|
|
55
|
-
// visualstudio.com format: https://{org}.visualstudio.com/{project}/_git/{repo}
|
|
56
|
-
const vsMatch = output.match(/https?:\/\/([^.]+)\.visualstudio\.com\/([^/]+)\/_git\/([^\s]+)/);
|
|
57
|
-
if (vsMatch) {
|
|
58
|
-
return { orgUrl: `https://${vsMatch[1]}.visualstudio.com`, project: decodeURIComponent(vsMatch[2]), repository: decodeURIComponent(vsMatch[3]) };
|
|
59
|
-
}
|
|
60
|
-
// SSH format: git@ssh.dev.azure.com:v3/{org}/{project}/{repo}
|
|
61
|
-
const sshMatch = output.match(/git@ssh\.dev\.azure\.com:v3\/([^/]+)\/([^/]+)\/([^\s]+)/);
|
|
62
|
-
if (sshMatch) {
|
|
63
|
-
return { orgUrl: `https://dev.azure.com/${sshMatch[1]}`, project: decodeURIComponent(sshMatch[2]), repository: decodeURIComponent(sshMatch[3]) };
|
|
64
|
-
}
|
|
65
|
-
return null;
|
|
66
|
-
}
|
|
67
|
-
catch {
|
|
68
|
-
return null;
|
|
69
|
-
}
|
|
70
|
-
}
|
|
71
|
-
// Stored server config context for enriching error messages
|
|
72
|
-
let _serverContext = {};
|
|
73
|
-
/**
|
|
74
|
-
* Sets the server config context so error messages can reference configured values.
|
|
75
|
-
* Call once during server startup.
|
|
76
|
-
*/
|
|
77
|
-
function setErrorContext(context) {
|
|
78
|
-
_serverContext = context;
|
|
79
|
-
}
|
|
80
|
-
/**
|
|
81
|
-
* Creates an error response
|
|
82
|
-
* @param error The error that occurred
|
|
83
|
-
* @returns MCP-compatible error response
|
|
84
|
-
*/
|
|
85
|
-
function formatErrorResponse(error) {
|
|
86
|
-
const errorMessage = error instanceof Error ? error.message : String(error);
|
|
87
|
-
let md = `Error: ${errorMessage}`;
|
|
88
|
-
const throttleInfo = error?.throttleInfo;
|
|
89
|
-
const lower = errorMessage.toLowerCase();
|
|
90
|
-
if (throttleInfo?.throttled || error?.statusCode === 429 || lower.includes('too many requests') || lower.includes('rate limit') || lower.includes('throttle')) {
|
|
91
|
-
const totalWait = throttleInfo?.totalWaitMs ? `${(throttleInfo.totalWaitMs / 1000).toFixed(1)}s` : 'a retry window';
|
|
92
|
-
md += `\n\n**Azure DevOps is throttling requests.** The server waited for ${totalWait} before giving up. This indicates too many requests are being sent in a short period.`;
|
|
93
|
-
}
|
|
94
|
-
// Auth error hints
|
|
95
|
-
const statusCode = error?.statusCode || error?.status;
|
|
96
|
-
if (statusCode === 401 || statusCode === 403 || lower.includes('unauthorized') || lower.includes('authentication failed')) {
|
|
97
|
-
md += `\n\n**Authentication failed.** Your token may have expired.`;
|
|
98
|
-
if (_serverContext.authType === 'pat') {
|
|
99
|
-
md += ` Generate a new PAT and restart the server.`;
|
|
100
|
-
}
|
|
101
|
-
else if (_serverContext.authType && ['entra', 'azcli', 'interactive'].includes(_serverContext.authType)) {
|
|
102
|
-
md += ` The server will attempt automatic token refresh. If this persists, restart the server.`;
|
|
103
|
-
}
|
|
104
|
-
}
|
|
105
|
-
// Append git remote discovery hint for repo/project-not-found errors
|
|
106
|
-
if (lower.includes('not found in project') ||
|
|
107
|
-
lower.includes('failed to resolve repository') ||
|
|
108
|
-
(lower.includes('repository') && (lower.includes('not found') || lower.includes('does not exist'))) ||
|
|
109
|
-
(lower.includes('project') && (lower.includes('not found') || lower.includes('does not exist'))) ||
|
|
110
|
-
/tf[24]\d{5}/i.test(errorMessage)) {
|
|
111
|
-
const gitInfo = detectGitRemoteInfo();
|
|
112
|
-
if (gitInfo) {
|
|
113
|
-
md += `\n\n**Detected from git remote:** Org: \`${gitInfo.orgUrl}\`, Project: \`${gitInfo.project}\`, Repository: \`${gitInfo.repository}\`\n`;
|
|
114
|
-
md += `**ACTION REQUIRED:** Retry the operation using the correct values above.`;
|
|
115
|
-
}
|
|
116
|
-
else {
|
|
117
|
-
md += `\n\n**ACTION REQUIRED:** The repository or project name you provided is incorrect. `;
|
|
118
|
-
if (_serverContext.orgUrl || _serverContext.project) {
|
|
119
|
-
md += `This server is configured for`;
|
|
120
|
-
if (_serverContext.orgUrl)
|
|
121
|
-
md += ` org \`${_serverContext.orgUrl}\``;
|
|
122
|
-
if (_serverContext.project)
|
|
123
|
-
md += `${_serverContext.orgUrl ? ',' : ''} project \`${_serverContext.project}\``;
|
|
124
|
-
md += `. `;
|
|
125
|
-
}
|
|
126
|
-
md += `Run \`git remote -v\` in the user's repo to discover the correct repository name from the Azure DevOps remote URL.\n\n`;
|
|
127
|
-
md += `The remote URL format is: \`https://dev.azure.com/{org}/{PROJECT}/_git/{REPOSITORY}\` `;
|
|
128
|
-
md += `(or \`https://{org}.visualstudio.com/{PROJECT}/_git/{REPOSITORY}\`).\n\n`;
|
|
129
|
-
md += `Parse the URL and retry the operation with the correct values.`;
|
|
130
|
-
}
|
|
131
|
-
}
|
|
132
|
-
return formatMcpResponse({ error: errorMessage }, md, true);
|
|
133
|
-
}
|
|
134
|
-
//# sourceMappingURL=Common.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Common.js","sourceRoot":"","sources":["../../../src/Interfaces/Common.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"CostResourceManagement.js","sourceRoot":"","sources":["../../../src/Interfaces/CostResourceManagement.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"DevSecOps.js","sourceRoot":"","sources":["../../../src/Interfaces/DevSecOps.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ExternalIntegrations.js","sourceRoot":"","sources":["../../../src/Interfaces/ExternalIntegrations.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"HybridCrossPlatform.js","sourceRoot":"","sources":["../../../src/Interfaces/HybridCrossPlatform.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Pipelines.js","sourceRoot":"","sources":["../../../src/Interfaces/Pipelines.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"ProjectManagement.js","sourceRoot":"","sources":["../../../src/Interfaces/ProjectManagement.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"TestingCapabilities.js","sourceRoot":"","sources":["../../../src/Interfaces/TestingCapabilities.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"Wiki.js","sourceRoot":"","sources":["../../../src/Interfaces/Wiki.ts"],"names":[],"mappings":""}
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"WorkItems.js","sourceRoot":"","sources":["../../../src/Interfaces/WorkItems.ts"],"names":[],"mappings":""}
|
|
@@ -1,195 +0,0 @@
|
|
|
1
|
-
"use strict";
|
|
2
|
-
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.AIAssistedDevelopmentService = void 0;
|
|
4
|
-
const AzureDevOpsService_1 = require("./AzureDevOpsService");
|
|
5
|
-
class AIAssistedDevelopmentService extends AzureDevOpsService_1.AzureDevOpsService {
|
|
6
|
-
constructor(config) {
|
|
7
|
-
super(config);
|
|
8
|
-
}
|
|
9
|
-
async getAICodeReview(params) {
|
|
10
|
-
// This would contain actual implementation
|
|
11
|
-
// For now, we're returning a mock response
|
|
12
|
-
return {
|
|
13
|
-
pullRequestId: params.pullRequestId,
|
|
14
|
-
repository: params.repository,
|
|
15
|
-
suggestions: [
|
|
16
|
-
{ file: "src/main.ts", line: 45, issue: "Potential null reference", recommendation: "Add null check before accessing properties" },
|
|
17
|
-
{ file: "src/utils/helper.ts", line: 23, issue: "Inefficient loop", recommendation: "Consider using map() instead of forEach()" }
|
|
18
|
-
],
|
|
19
|
-
analysisDate: new Date().toISOString(),
|
|
20
|
-
};
|
|
21
|
-
}
|
|
22
|
-
async suggestCodeOptimization(params) {
|
|
23
|
-
return {
|
|
24
|
-
repository: params.repository,
|
|
25
|
-
filePath: params.filePath,
|
|
26
|
-
lineRange: `${params.lineStart || 1}-${params.lineEnd || 100}`,
|
|
27
|
-
optimizationType: params.optimizationType || "all",
|
|
28
|
-
suggestions: [
|
|
29
|
-
{ line: params.lineStart || 10, issue: "Memory leak", recommendation: "Dispose resources properly", code: "resource.dispose();" },
|
|
30
|
-
{ line: params.lineEnd || 50, issue: "Performance bottleneck", recommendation: "Cache expensive operation", code: "const cachedResult = memoize(expensiveOperation);" }
|
|
31
|
-
],
|
|
32
|
-
};
|
|
33
|
-
}
|
|
34
|
-
async identifyCodeSmells(params) {
|
|
35
|
-
return {
|
|
36
|
-
repository: params.repository,
|
|
37
|
-
branch: params.branch || "main",
|
|
38
|
-
codeSmells: [
|
|
39
|
-
{ file: params.filePath || "src/components/App.tsx", line: 120, smell: "Long method", severity: "high", recommendation: "Extract logic into smaller methods" },
|
|
40
|
-
{ file: params.filePath || "src/services/DataService.ts", line: 45, smell: "Duplicate code", severity: "medium", recommendation: "Create a shared utility function" },
|
|
41
|
-
{ file: params.filePath || "src/utils/helpers.ts", line: 78, smell: "God class", severity: "high", recommendation: "Split into multiple focused classes" }
|
|
42
|
-
],
|
|
43
|
-
severity: params.severity || "all",
|
|
44
|
-
};
|
|
45
|
-
}
|
|
46
|
-
async getPredictiveBugAnalysis(params) {
|
|
47
|
-
return {
|
|
48
|
-
repository: params.repository,
|
|
49
|
-
pullRequestId: params.pullRequestId,
|
|
50
|
-
branch: params.branch || "main",
|
|
51
|
-
potentialIssues: [
|
|
52
|
-
{ file: params.filePath || "src/controllers/UserController.ts", line: 58, risk: "high", issue: "Race condition in concurrent user updates", confidence: 0.85 },
|
|
53
|
-
{ file: params.filePath || "src/services/AuthService.ts", line: 124, risk: "medium", issue: "Token validation could be bypassed", confidence: 0.72 }
|
|
54
|
-
],
|
|
55
|
-
analysisDate: new Date().toISOString(),
|
|
56
|
-
};
|
|
57
|
-
}
|
|
58
|
-
async getDeveloperProductivity(params) {
|
|
59
|
-
return {
|
|
60
|
-
userId: params.userId || "current-user",
|
|
61
|
-
teamId: params.teamId,
|
|
62
|
-
timeRange: params.timeRange || "30d",
|
|
63
|
-
metrics: {
|
|
64
|
-
codeCommitted: { lines: 2450, commits: 48, pullRequests: 15 },
|
|
65
|
-
workItemsCompleted: 28,
|
|
66
|
-
codeReviewsPerformed: 32,
|
|
67
|
-
averageReviewTime: "1.5h",
|
|
68
|
-
buildSuccessRate: 94.2,
|
|
69
|
-
testCoverage: 78.5
|
|
70
|
-
},
|
|
71
|
-
trends: {
|
|
72
|
-
productivity: [82, 85, 89, 87, 92],
|
|
73
|
-
qualityScore: [76, 78, 81, 80, 83]
|
|
74
|
-
},
|
|
75
|
-
};
|
|
76
|
-
}
|
|
77
|
-
async getPredictiveEffortEstimation(params) {
|
|
78
|
-
return {
|
|
79
|
-
workItemIds: params.workItemIds || [1001, 1002, 1003],
|
|
80
|
-
estimations: [
|
|
81
|
-
{ workItemId: 1001, title: "Implement login page", predictedHours: 12.5, confidenceScore: 0.85, similarWorkItems: [845, 921] },
|
|
82
|
-
{ workItemId: 1002, title: "Fix navigation bug", predictedHours: 4.2, confidenceScore: 0.92, similarWorkItems: [678, 782] },
|
|
83
|
-
{ workItemId: 1003, title: "Add unit tests", predictedHours: 8.0, confidenceScore: 0.78, similarWorkItems: [512, 634] }
|
|
84
|
-
],
|
|
85
|
-
modelFactors: ["historical completion time", "complexity", "developer experience", "similar work items"],
|
|
86
|
-
};
|
|
87
|
-
}
|
|
88
|
-
async getCodeQualityTrends(params) {
|
|
89
|
-
return {
|
|
90
|
-
repositoryId: params.repositoryId,
|
|
91
|
-
branch: params.branch || "main",
|
|
92
|
-
timeRange: params.timeRange || "90d",
|
|
93
|
-
metrics: params.metrics || ["complexity", "duplication", "test_coverage", "code_smells"],
|
|
94
|
-
trends: {
|
|
95
|
-
complexity: [24, 26, 23, 21, 20, 18],
|
|
96
|
-
duplication: [12.5, 11.8, 10.5, 9.8, 8.5, 8.2],
|
|
97
|
-
testCoverage: [68.2, 72.5, 75.8, 76.4, 78.2, 81.5],
|
|
98
|
-
codeSmells: [45, 42, 38, 35, 30, 28]
|
|
99
|
-
},
|
|
100
|
-
timePoints: ["Jan", "Feb", "Mar", "Apr", "May", "Jun"],
|
|
101
|
-
};
|
|
102
|
-
}
|
|
103
|
-
async suggestWorkItemRefinements(params) {
|
|
104
|
-
return {
|
|
105
|
-
workItemId: params.workItemId || 1234,
|
|
106
|
-
workItemType: params.workItemType || "User Story",
|
|
107
|
-
suggestions: [
|
|
108
|
-
{ field: "Title", issue: "Too vague", recommendation: "Specify the user role and action in the title" },
|
|
109
|
-
{ field: "Description", issue: "Missing acceptance criteria", recommendation: "Add clear acceptance criteria with examples" },
|
|
110
|
-
{ field: "Effort", issue: "Estimate may be too low", recommendation: "Consider increasing estimate based on similar completed stories" },
|
|
111
|
-
{ field: "Tags", issue: "Missing relevant tags", recommendation: "Add 'frontend', 'ux' tags for better categorization" }
|
|
112
|
-
],
|
|
113
|
-
similarWorkItems: [5678, 5912, 6023],
|
|
114
|
-
};
|
|
115
|
-
}
|
|
116
|
-
async suggestAutomationOpportunities(params) {
|
|
117
|
-
return {
|
|
118
|
-
projectId: params.projectId,
|
|
119
|
-
scopeType: params.scopeType || "all",
|
|
120
|
-
opportunities: [
|
|
121
|
-
{
|
|
122
|
-
type: "build",
|
|
123
|
-
area: "Continuous Integration",
|
|
124
|
-
description: "Automate build verification tests",
|
|
125
|
-
benefit: "Reduce failed builds by 35%",
|
|
126
|
-
complexity: "medium",
|
|
127
|
-
implementation: "Add BVT step to pipeline yaml"
|
|
128
|
-
},
|
|
129
|
-
{
|
|
130
|
-
type: "release",
|
|
131
|
-
area: "Deployment",
|
|
132
|
-
description: "Implement blue-green deployments",
|
|
133
|
-
benefit: "Reduce downtime by 90%",
|
|
134
|
-
complexity: "high",
|
|
135
|
-
implementation: "Configure traffic manager and deployment slots"
|
|
136
|
-
},
|
|
137
|
-
{
|
|
138
|
-
type: "tests",
|
|
139
|
-
area: "Regression Testing",
|
|
140
|
-
description: "Implement test impact analysis",
|
|
141
|
-
benefit: "Reduce test execution time by 45%",
|
|
142
|
-
complexity: "medium",
|
|
143
|
-
implementation: "Configure TIA plugin in test tasks"
|
|
144
|
-
}
|
|
145
|
-
],
|
|
146
|
-
};
|
|
147
|
-
}
|
|
148
|
-
async createIntelligentAlerts(params) {
|
|
149
|
-
return {
|
|
150
|
-
alertId: "alert-" + Date.now(),
|
|
151
|
-
alertName: params.alertName,
|
|
152
|
-
alertType: params.alertType,
|
|
153
|
-
conditions: params.conditions,
|
|
154
|
-
actions: params.actions || { notificationType: "email" },
|
|
155
|
-
status: "created",
|
|
156
|
-
createdDate: new Date().toISOString(),
|
|
157
|
-
};
|
|
158
|
-
}
|
|
159
|
-
async predictBuildFailures(params) {
|
|
160
|
-
return {
|
|
161
|
-
buildDefinitionId: params.buildDefinitionId,
|
|
162
|
-
lookbackPeriod: params.lookbackPeriod || "30d",
|
|
163
|
-
prediction: {
|
|
164
|
-
failureRisk: 0.35,
|
|
165
|
-
confidenceScore: 0.82,
|
|
166
|
-
potentialIssues: [
|
|
167
|
-
{ area: "Dependencies", risk: "high", description: "Outdated NuGet packages may cause conflicts" },
|
|
168
|
-
{ area: "Test Coverage", risk: "medium", description: "Recent code changes have low test coverage" },
|
|
169
|
-
{ area: "Build Configuration", risk: "low", description: "Build agent pool has capacity issues during peak hours" }
|
|
170
|
-
],
|
|
171
|
-
recommendedActions: [
|
|
172
|
-
"Update NuGet packages to latest compatible versions",
|
|
173
|
-
"Add tests for the authentication module",
|
|
174
|
-
"Schedule builds during off-peak hours"
|
|
175
|
-
]
|
|
176
|
-
},
|
|
177
|
-
};
|
|
178
|
-
}
|
|
179
|
-
async optimizeTestSelection(params) {
|
|
180
|
-
return {
|
|
181
|
-
buildId: params.buildId,
|
|
182
|
-
changedFiles: params.changedFiles || ["src/services/authentication.ts", "src/components/login.tsx"],
|
|
183
|
-
selectedTests: [
|
|
184
|
-
{ testId: "test-001", name: "AuthenticationTests", priority: "high", reason: "Direct dependency on changed files" },
|
|
185
|
-
{ testId: "test-002", name: "LoginComponentTests", priority: "high", reason: "Direct dependency on changed files" },
|
|
186
|
-
{ testId: "test-003", name: "UserSessionTests", priority: "medium", reason: "Indirect dependency on authentication" },
|
|
187
|
-
{ testId: "test-004", name: "NavigationTests", priority: "low", reason: "Previously failed with similar changes" }
|
|
188
|
-
],
|
|
189
|
-
excludedTests: params.maxTestCount ? 120 : 0,
|
|
190
|
-
estimatedTimeReduction: "45%",
|
|
191
|
-
};
|
|
192
|
-
}
|
|
193
|
-
}
|
|
194
|
-
exports.AIAssistedDevelopmentService = AIAssistedDevelopmentService;
|
|
195
|
-
//# sourceMappingURL=AIAssistedDevelopmentService.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"AIAssistedDevelopmentService.js","sourceRoot":"","sources":["../../../src/Services/AIAssistedDevelopmentService.ts"],"names":[],"mappings":"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"}
|