couchloop-eq-mcp 1.1.3 → 1.1.6
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 +6 -0
- package/dist/clients/shrinkChatClient.d.ts +4 -4
- package/dist/index.js +168 -6
- package/dist/index.js.map +1 -1
- package/dist/server/chatgpt-mcp.d.ts.map +1 -1
- package/dist/server/chatgpt-mcp.js +112 -2
- package/dist/server/chatgpt-mcp.js.map +1 -1
- package/dist/server/http-mcp.d.ts +11 -0
- package/dist/server/http-mcp.d.ts.map +1 -0
- package/dist/server/http-mcp.js +431 -0
- package/dist/server/http-mcp.js.map +1 -0
- package/dist/server/index.d.ts.map +1 -1
- package/dist/server/index.js +28 -3
- package/dist/server/index.js.map +1 -1
- package/dist/server/sse.d.ts +1 -1
- package/dist/server/sse.d.ts.map +1 -1
- package/dist/server/sse.js +320 -69
- package/dist/server/sse.js.map +1 -1
- package/dist/tools/check-versions.d.ts +7 -7
- package/dist/tools/check-versions.d.ts.map +1 -1
- package/dist/tools/check-versions.js +17 -22
- package/dist/tools/check-versions.js.map +1 -1
- package/dist/tools/checkpoint.d.ts +4 -18
- package/dist/tools/checkpoint.d.ts.map +1 -1
- package/dist/tools/checkpoint.js +85 -11
- package/dist/tools/checkpoint.js.map +1 -1
- package/dist/tools/comprehensive-code-review.d.ts +78 -0
- package/dist/tools/comprehensive-code-review.d.ts.map +1 -0
- package/dist/tools/comprehensive-code-review.js +177 -0
- package/dist/tools/comprehensive-code-review.js.map +1 -0
- package/dist/tools/comprehensive-package-audit.d.ts +75 -0
- package/dist/tools/comprehensive-package-audit.d.ts.map +1 -0
- package/dist/tools/comprehensive-package-audit.js +151 -0
- package/dist/tools/comprehensive-package-audit.js.map +1 -0
- package/dist/tools/detect-build-context.d.ts +59 -0
- package/dist/tools/detect-build-context.d.ts.map +1 -0
- package/dist/tools/detect-build-context.js +80 -0
- package/dist/tools/detect-build-context.js.map +1 -0
- package/dist/tools/generate-upgrade-report.d.ts +85 -0
- package/dist/tools/generate-upgrade-report.d.ts.map +1 -0
- package/dist/tools/generate-upgrade-report.js +102 -0
- package/dist/tools/generate-upgrade-report.js.map +1 -0
- package/dist/tools/index-full.d.ts +1355 -0
- package/dist/tools/index-full.d.ts.map +1 -0
- package/dist/tools/index-full.js +611 -0
- package/dist/tools/index-full.js.map +1 -0
- package/dist/tools/index.d.ts +27 -968
- package/dist/tools/index.d.ts.map +1 -1
- package/dist/tools/index.js +29 -531
- package/dist/tools/index.js.map +1 -1
- package/dist/tools/insight.d.ts +25 -6
- package/dist/tools/insight.d.ts.map +1 -1
- package/dist/tools/insight.js +2 -1
- package/dist/tools/insight.js.map +1 -1
- package/dist/tools/prevent-ai-errors.d.ts +85 -0
- package/dist/tools/prevent-ai-errors.d.ts.map +1 -0
- package/dist/tools/prevent-ai-errors.js +97 -0
- package/dist/tools/prevent-ai-errors.js.map +1 -0
- package/dist/tools/primary-tools.d.ts +430 -0
- package/dist/tools/primary-tools.d.ts.map +1 -0
- package/dist/tools/primary-tools.js +294 -0
- package/dist/tools/primary-tools.js.map +1 -0
- package/dist/tools/sendMessage.d.ts +3 -5
- package/dist/tools/sendMessage.d.ts.map +1 -1
- package/dist/tools/sendMessage.js +47 -22
- package/dist/tools/sendMessage.js.map +1 -1
- package/dist/tools/session-manager.d.ts +32 -0
- package/dist/tools/session-manager.d.ts.map +1 -0
- package/dist/tools/session-manager.js +184 -0
- package/dist/tools/session-manager.js.map +1 -0
- package/dist/tools/smart-context.d.ts +66 -0
- package/dist/tools/smart-context.d.ts.map +1 -0
- package/dist/tools/smart-context.js +167 -0
- package/dist/tools/smart-context.js.map +1 -0
- package/dist/tools/validate_packages.d.ts.map +1 -1
- package/dist/tools/validate_packages.js +6 -4
- package/dist/tools/validate_packages.js.map +1 -1
- package/dist/types/checkpoint.d.ts +59 -4
- package/dist/types/checkpoint.d.ts.map +1 -1
- package/dist/types/checkpoint.js +20 -1
- package/dist/types/checkpoint.js.map +1 -1
- package/dist/types/journey.d.ts +6 -6
- package/dist/types/session.d.ts +3 -3
- package/dist/utils/sanitize.d.ts +24 -0
- package/dist/utils/sanitize.d.ts.map +1 -0
- package/dist/utils/sanitize.js +117 -0
- package/dist/utils/sanitize.js.map +1 -0
- package/dist/workflows/index.d.ts +1 -1
- package/package.json +2 -2
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comprehensive-code-review.js","sourceRoot":"","sources":["../../src/tools/comprehensive-code-review.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,75 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: comprehensive_package_audit
|
|
3
|
+
*
|
|
4
|
+
* One-stop package/dependency audit that bundles:
|
|
5
|
+
* - Package validation (typosquatting, existence, legitimacy)
|
|
6
|
+
* - Version checking (outdated, deprecated, security vulnerabilities)
|
|
7
|
+
* - Upgrade report generation (breaking changes, migration guides)
|
|
8
|
+
*
|
|
9
|
+
* User just says "audit my dependencies" and gets everything.
|
|
10
|
+
*/
|
|
11
|
+
export declare const comprehensivePackageAuditTool: {
|
|
12
|
+
name: string;
|
|
13
|
+
description: string;
|
|
14
|
+
annotations: {
|
|
15
|
+
readOnlyHint: boolean;
|
|
16
|
+
destructiveHint: boolean;
|
|
17
|
+
openWorldHint: boolean;
|
|
18
|
+
};
|
|
19
|
+
inputSchema: {
|
|
20
|
+
type: string;
|
|
21
|
+
properties: {
|
|
22
|
+
packages: {
|
|
23
|
+
type: string;
|
|
24
|
+
items: {
|
|
25
|
+
type: string;
|
|
26
|
+
};
|
|
27
|
+
description: string;
|
|
28
|
+
};
|
|
29
|
+
registry: {
|
|
30
|
+
type: string;
|
|
31
|
+
enum: string[];
|
|
32
|
+
description: string;
|
|
33
|
+
};
|
|
34
|
+
include_upgrade_reports: {
|
|
35
|
+
type: string;
|
|
36
|
+
description: string;
|
|
37
|
+
};
|
|
38
|
+
current_versions: {
|
|
39
|
+
type: string;
|
|
40
|
+
additionalProperties: {
|
|
41
|
+
type: string;
|
|
42
|
+
};
|
|
43
|
+
description: string;
|
|
44
|
+
};
|
|
45
|
+
};
|
|
46
|
+
required: string[];
|
|
47
|
+
};
|
|
48
|
+
};
|
|
49
|
+
export declare function handleComprehensivePackageAudit(args: unknown): Promise<{
|
|
50
|
+
success: boolean;
|
|
51
|
+
summary: {
|
|
52
|
+
total_packages: number;
|
|
53
|
+
safe: number;
|
|
54
|
+
suspicious: number;
|
|
55
|
+
outdated: number;
|
|
56
|
+
vulnerable: number;
|
|
57
|
+
recommendation: string;
|
|
58
|
+
};
|
|
59
|
+
safe_packages: string[];
|
|
60
|
+
suspicious_packages: string[];
|
|
61
|
+
outdated_packages: string[];
|
|
62
|
+
vulnerable_packages: string[];
|
|
63
|
+
upgrade_reports: Record<string, unknown>;
|
|
64
|
+
error?: undefined;
|
|
65
|
+
} | {
|
|
66
|
+
success: boolean;
|
|
67
|
+
error: string;
|
|
68
|
+
summary?: undefined;
|
|
69
|
+
safe_packages?: undefined;
|
|
70
|
+
suspicious_packages?: undefined;
|
|
71
|
+
outdated_packages?: undefined;
|
|
72
|
+
vulnerable_packages?: undefined;
|
|
73
|
+
upgrade_reports?: undefined;
|
|
74
|
+
}>;
|
|
75
|
+
//# sourceMappingURL=comprehensive-package-audit.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comprehensive-package-audit.d.ts","sourceRoot":"","sources":["../../src/tools/comprehensive-package-audit.ts"],"names":[],"mappings":"AAAA;;;;;;;;;GASG;AAeH,eAAO,MAAM,6BAA6B;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAiCzC,CAAC;AAEF,wBAAsB,+BAA+B,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;GAsHlE"}
|
|
@@ -0,0 +1,151 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: comprehensive_package_audit
|
|
3
|
+
*
|
|
4
|
+
* One-stop package/dependency audit that bundles:
|
|
5
|
+
* - Package validation (typosquatting, existence, legitimacy)
|
|
6
|
+
* - Version checking (outdated, deprecated, security vulnerabilities)
|
|
7
|
+
* - Upgrade report generation (breaking changes, migration guides)
|
|
8
|
+
*
|
|
9
|
+
* User just says "audit my dependencies" and gets everything.
|
|
10
|
+
*/
|
|
11
|
+
import { z } from 'zod';
|
|
12
|
+
import { handleValidatePackages } from './validate_packages.js';
|
|
13
|
+
import { handleCheckVersions } from './check-versions.js';
|
|
14
|
+
import { handleGenerateUpgradeReport } from './generate-upgrade-report.js';
|
|
15
|
+
import { logger } from '../utils/logger.js';
|
|
16
|
+
const ComprehensivePackageAuditInputSchema = z.object({
|
|
17
|
+
packages: z.array(z.string()).describe('List of packages to audit'),
|
|
18
|
+
registry: z.enum(['npm', 'pypi', 'maven', 'cargo', 'go', 'nuget', 'gem']).default('npm'),
|
|
19
|
+
include_upgrade_reports: z.boolean().default(true).describe('Generate upgrade reports for outdated packages'),
|
|
20
|
+
current_versions: z.record(z.string()).optional().describe('Map of package name to current version'),
|
|
21
|
+
});
|
|
22
|
+
export const comprehensivePackageAuditTool = {
|
|
23
|
+
name: 'comprehensive_package_audit',
|
|
24
|
+
description: 'Complete dependency audit in one call: validates packages exist and are safe, checks for outdated versions and vulnerabilities, generates upgrade reports with migration guides. Just provide package names.',
|
|
25
|
+
annotations: {
|
|
26
|
+
readOnlyHint: true,
|
|
27
|
+
destructiveHint: false,
|
|
28
|
+
openWorldHint: true, // Makes network requests
|
|
29
|
+
},
|
|
30
|
+
inputSchema: {
|
|
31
|
+
type: 'object',
|
|
32
|
+
properties: {
|
|
33
|
+
packages: {
|
|
34
|
+
type: 'array',
|
|
35
|
+
items: { type: 'string' },
|
|
36
|
+
description: 'List of packages to audit',
|
|
37
|
+
},
|
|
38
|
+
registry: {
|
|
39
|
+
type: 'string',
|
|
40
|
+
enum: ['npm', 'pypi', 'maven', 'cargo', 'go', 'nuget', 'gem'],
|
|
41
|
+
description: 'Package registry (default: npm)',
|
|
42
|
+
},
|
|
43
|
+
include_upgrade_reports: {
|
|
44
|
+
type: 'boolean',
|
|
45
|
+
description: 'Generate upgrade reports for outdated packages (default: true)',
|
|
46
|
+
},
|
|
47
|
+
current_versions: {
|
|
48
|
+
type: 'object',
|
|
49
|
+
additionalProperties: { type: 'string' },
|
|
50
|
+
description: 'Map of package name to current version',
|
|
51
|
+
},
|
|
52
|
+
},
|
|
53
|
+
required: ['packages'],
|
|
54
|
+
},
|
|
55
|
+
};
|
|
56
|
+
export async function handleComprehensivePackageAudit(args) {
|
|
57
|
+
try {
|
|
58
|
+
const input = ComprehensivePackageAuditInputSchema.parse(args);
|
|
59
|
+
logger.info(`Running comprehensive package audit for ${input.packages.length} packages`);
|
|
60
|
+
const results = {
|
|
61
|
+
safe: [],
|
|
62
|
+
suspicious: [],
|
|
63
|
+
outdated: [],
|
|
64
|
+
vulnerable: [],
|
|
65
|
+
upgrade_reports: {},
|
|
66
|
+
};
|
|
67
|
+
// Step 1: Validate all packages exist and are legitimate
|
|
68
|
+
const validationResult = await handleValidatePackages({
|
|
69
|
+
packages: input.packages,
|
|
70
|
+
registry: input.registry,
|
|
71
|
+
});
|
|
72
|
+
if (validationResult.results && typeof validationResult.results === 'object') {
|
|
73
|
+
const validationResults = validationResult.results;
|
|
74
|
+
for (const [pkg, result] of Object.entries(validationResults)) {
|
|
75
|
+
if (!result.valid) {
|
|
76
|
+
results.suspicious.push(pkg);
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
}
|
|
80
|
+
// Step 2: Check versions for all packages
|
|
81
|
+
const versionResult = await handleCheckVersions({
|
|
82
|
+
packages: input.packages.map(p => ({
|
|
83
|
+
name: p,
|
|
84
|
+
currentVersion: input.current_versions?.[p],
|
|
85
|
+
})),
|
|
86
|
+
registry: input.registry,
|
|
87
|
+
});
|
|
88
|
+
if (Array.isArray(versionResult.results)) {
|
|
89
|
+
for (const pkg of versionResult.results) {
|
|
90
|
+
if (pkg.isOutdated) {
|
|
91
|
+
results.outdated.push(pkg.package);
|
|
92
|
+
}
|
|
93
|
+
if (pkg.securityVulnerabilities && pkg.securityVulnerabilities.length > 0) {
|
|
94
|
+
results.vulnerable.push(pkg.package);
|
|
95
|
+
}
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
// Step 3: Generate upgrade reports for outdated/vulnerable packages
|
|
99
|
+
if (input.include_upgrade_reports) {
|
|
100
|
+
const packagesToReport = [...new Set([...results.outdated, ...results.vulnerable])];
|
|
101
|
+
for (const pkg of packagesToReport.slice(0, 5)) { // Limit to 5 to avoid timeout
|
|
102
|
+
try {
|
|
103
|
+
const report = await handleGenerateUpgradeReport({
|
|
104
|
+
package_name: pkg,
|
|
105
|
+
current_version: input.current_versions?.[pkg],
|
|
106
|
+
registry: input.registry,
|
|
107
|
+
});
|
|
108
|
+
results.upgrade_reports[pkg] = report;
|
|
109
|
+
}
|
|
110
|
+
catch (err) {
|
|
111
|
+
logger.warn(`Failed to generate upgrade report for ${pkg}:`, err);
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
}
|
|
115
|
+
// Determine safe packages
|
|
116
|
+
const problematic = new Set([...results.suspicious, ...results.outdated, ...results.vulnerable]);
|
|
117
|
+
results.safe = input.packages.filter(p => !problematic.has(p));
|
|
118
|
+
// Calculate summary
|
|
119
|
+
const recommendation = results.vulnerable.length > 0
|
|
120
|
+
? '🚨 SECURITY VULNERABILITIES - Update vulnerable packages immediately.'
|
|
121
|
+
: results.suspicious.length > 0
|
|
122
|
+
? '⚠️ SUSPICIOUS PACKAGES - Review and verify before using.'
|
|
123
|
+
: results.outdated.length > 0
|
|
124
|
+
? '📦 OUTDATED - Consider updating for latest features and fixes.'
|
|
125
|
+
: '✅ All packages look good!';
|
|
126
|
+
return {
|
|
127
|
+
success: true,
|
|
128
|
+
summary: {
|
|
129
|
+
total_packages: input.packages.length,
|
|
130
|
+
safe: results.safe.length,
|
|
131
|
+
suspicious: results.suspicious.length,
|
|
132
|
+
outdated: results.outdated.length,
|
|
133
|
+
vulnerable: results.vulnerable.length,
|
|
134
|
+
recommendation,
|
|
135
|
+
},
|
|
136
|
+
safe_packages: results.safe,
|
|
137
|
+
suspicious_packages: results.suspicious,
|
|
138
|
+
outdated_packages: results.outdated,
|
|
139
|
+
vulnerable_packages: results.vulnerable,
|
|
140
|
+
upgrade_reports: results.upgrade_reports,
|
|
141
|
+
};
|
|
142
|
+
}
|
|
143
|
+
catch (error) {
|
|
144
|
+
logger.error('Error in comprehensive_package_audit:', error);
|
|
145
|
+
return {
|
|
146
|
+
success: false,
|
|
147
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
148
|
+
};
|
|
149
|
+
}
|
|
150
|
+
}
|
|
151
|
+
//# sourceMappingURL=comprehensive-package-audit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"comprehensive-package-audit.js","sourceRoot":"","sources":["../../src/tools/comprehensive-package-audit.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: detect_build_context
|
|
3
|
+
*
|
|
4
|
+
* Detects project configuration to prevent AI agents from making incorrect assumptions.
|
|
5
|
+
* Prevents "Build Context Blindness" - when AI generates code incompatible with the project setup.
|
|
6
|
+
*/
|
|
7
|
+
export declare const detectBuildContextTool: {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
annotations: {
|
|
11
|
+
readOnlyHint: boolean;
|
|
12
|
+
destructiveHint: boolean;
|
|
13
|
+
openWorldHint: boolean;
|
|
14
|
+
};
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: string;
|
|
17
|
+
properties: {
|
|
18
|
+
project_root: {
|
|
19
|
+
type: string;
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
required: never[];
|
|
24
|
+
};
|
|
25
|
+
};
|
|
26
|
+
export declare function handleDetectBuildContext(args: unknown): Promise<{
|
|
27
|
+
success: boolean;
|
|
28
|
+
context: {
|
|
29
|
+
language: "unknown" | "javascript" | "typescript" | "python" | "java";
|
|
30
|
+
module_system: "commonjs" | "esm" | "umd" | "amd" | undefined;
|
|
31
|
+
package_manager: "npm" | "yarn" | "pnpm" | "pip" | "maven" | "gradle" | undefined;
|
|
32
|
+
build_tool: string | undefined;
|
|
33
|
+
typescript_config: {
|
|
34
|
+
moduleResolution?: string;
|
|
35
|
+
module?: string;
|
|
36
|
+
target?: string;
|
|
37
|
+
strict?: boolean;
|
|
38
|
+
esModuleInterop?: boolean;
|
|
39
|
+
} | undefined;
|
|
40
|
+
python_version: string | undefined;
|
|
41
|
+
node_version: string | undefined;
|
|
42
|
+
has_typescript: boolean;
|
|
43
|
+
requires_js_extensions: boolean;
|
|
44
|
+
};
|
|
45
|
+
errors: string[];
|
|
46
|
+
warnings: string[];
|
|
47
|
+
ai_guidance: string[];
|
|
48
|
+
summary: string;
|
|
49
|
+
error?: undefined;
|
|
50
|
+
} | {
|
|
51
|
+
success: boolean;
|
|
52
|
+
error: string;
|
|
53
|
+
context?: undefined;
|
|
54
|
+
errors?: undefined;
|
|
55
|
+
warnings?: undefined;
|
|
56
|
+
ai_guidance?: undefined;
|
|
57
|
+
summary?: undefined;
|
|
58
|
+
}>;
|
|
59
|
+
//# sourceMappingURL=detect-build-context.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-build-context.d.ts","sourceRoot":"","sources":["../../src/tools/detect-build-context.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAUH,eAAO,MAAM,sBAAsB;;;;;;;;;;;;;;;;;;CAkBlC,CAAC;AAEF,wBAAsB,wBAAwB,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAkC3D"}
|
|
@@ -0,0 +1,80 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: detect_build_context
|
|
3
|
+
*
|
|
4
|
+
* Detects project configuration to prevent AI agents from making incorrect assumptions.
|
|
5
|
+
* Prevents "Build Context Blindness" - when AI generates code incompatible with the project setup.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { BuildContextDetector } from '../developer/evaluators/build-context-detector.js';
|
|
9
|
+
import { logger } from '../utils/logger.js';
|
|
10
|
+
const DetectBuildContextInputSchema = z.object({
|
|
11
|
+
project_root: z.string().optional().describe('Project root path (default: current directory)'),
|
|
12
|
+
});
|
|
13
|
+
export const detectBuildContextTool = {
|
|
14
|
+
name: 'detect_build_context',
|
|
15
|
+
description: 'Detects project build context (module system, TypeScript config, package manager, etc.) to ensure AI-generated code is compatible. Prevents common errors like wrong import syntax, missing extensions, or incompatible APIs.',
|
|
16
|
+
annotations: {
|
|
17
|
+
readOnlyHint: true,
|
|
18
|
+
destructiveHint: false,
|
|
19
|
+
openWorldHint: false,
|
|
20
|
+
},
|
|
21
|
+
inputSchema: {
|
|
22
|
+
type: 'object',
|
|
23
|
+
properties: {
|
|
24
|
+
project_root: {
|
|
25
|
+
type: 'string',
|
|
26
|
+
description: 'Project root path (default: current directory)',
|
|
27
|
+
},
|
|
28
|
+
},
|
|
29
|
+
required: [],
|
|
30
|
+
},
|
|
31
|
+
};
|
|
32
|
+
export async function handleDetectBuildContext(args) {
|
|
33
|
+
try {
|
|
34
|
+
const input = DetectBuildContextInputSchema.parse(args);
|
|
35
|
+
logger.info('Detecting build context');
|
|
36
|
+
const detector = new BuildContextDetector(input.project_root);
|
|
37
|
+
const context = await detector.detect();
|
|
38
|
+
return {
|
|
39
|
+
success: true,
|
|
40
|
+
context: {
|
|
41
|
+
language: context.language,
|
|
42
|
+
module_system: context.moduleSystem,
|
|
43
|
+
package_manager: context.packageManager,
|
|
44
|
+
build_tool: context.buildTool,
|
|
45
|
+
typescript_config: context.tsConfig,
|
|
46
|
+
python_version: context.pythonVersion,
|
|
47
|
+
node_version: context.nodeVersion,
|
|
48
|
+
has_typescript: context.hasTypeScript,
|
|
49
|
+
requires_js_extensions: context.requiresJsExtensions,
|
|
50
|
+
},
|
|
51
|
+
errors: context.errors,
|
|
52
|
+
warnings: context.warnings,
|
|
53
|
+
ai_guidance: context.aiGuidance,
|
|
54
|
+
summary: generateSummary(context),
|
|
55
|
+
};
|
|
56
|
+
}
|
|
57
|
+
catch (error) {
|
|
58
|
+
logger.error('Error in detect_build_context:', error);
|
|
59
|
+
return {
|
|
60
|
+
success: false,
|
|
61
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
62
|
+
};
|
|
63
|
+
}
|
|
64
|
+
}
|
|
65
|
+
function generateSummary(context) {
|
|
66
|
+
const parts = [];
|
|
67
|
+
parts.push(`Language: ${context.language}`);
|
|
68
|
+
if (context.moduleSystem)
|
|
69
|
+
parts.push(`Module System: ${context.moduleSystem.toUpperCase()}`);
|
|
70
|
+
if (context.hasTypeScript)
|
|
71
|
+
parts.push('TypeScript: Yes');
|
|
72
|
+
if (context.requiresJsExtensions)
|
|
73
|
+
parts.push('⚠️ Requires .js extensions in imports');
|
|
74
|
+
if (context.aiGuidance.length > 0) {
|
|
75
|
+
parts.push('\nAI Guidance:');
|
|
76
|
+
context.aiGuidance.forEach(g => parts.push(` - ${g}`));
|
|
77
|
+
}
|
|
78
|
+
return parts.join('\n');
|
|
79
|
+
}
|
|
80
|
+
//# sourceMappingURL=detect-build-context.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"detect-build-context.js","sourceRoot":"","sources":["../../src/tools/detect-build-context.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: generate_upgrade_report
|
|
3
|
+
*
|
|
4
|
+
* Generates comprehensive upgrade reports with migration guides, breaking changes,
|
|
5
|
+
* and rollback strategies for updating dependencies.
|
|
6
|
+
*/
|
|
7
|
+
export declare const generateUpgradeReportTool: {
|
|
8
|
+
name: string;
|
|
9
|
+
description: string;
|
|
10
|
+
annotations: {
|
|
11
|
+
readOnlyHint: boolean;
|
|
12
|
+
destructiveHint: boolean;
|
|
13
|
+
openWorldHint: boolean;
|
|
14
|
+
};
|
|
15
|
+
inputSchema: {
|
|
16
|
+
type: string;
|
|
17
|
+
properties: {
|
|
18
|
+
package_name: {
|
|
19
|
+
type: string;
|
|
20
|
+
description: string;
|
|
21
|
+
};
|
|
22
|
+
current_version: {
|
|
23
|
+
type: string;
|
|
24
|
+
description: string;
|
|
25
|
+
};
|
|
26
|
+
target_version: {
|
|
27
|
+
type: string;
|
|
28
|
+
description: string;
|
|
29
|
+
};
|
|
30
|
+
registry: {
|
|
31
|
+
type: string;
|
|
32
|
+
enum: string[];
|
|
33
|
+
description: string;
|
|
34
|
+
};
|
|
35
|
+
};
|
|
36
|
+
required: string[];
|
|
37
|
+
};
|
|
38
|
+
};
|
|
39
|
+
export declare function handleGenerateUpgradeReport(args: unknown): Promise<{
|
|
40
|
+
success: boolean;
|
|
41
|
+
error: string;
|
|
42
|
+
package?: undefined;
|
|
43
|
+
from_version?: undefined;
|
|
44
|
+
to_version?: undefined;
|
|
45
|
+
complexity?: undefined;
|
|
46
|
+
estimated_time?: undefined;
|
|
47
|
+
upgrade_command?: undefined;
|
|
48
|
+
install_command?: undefined;
|
|
49
|
+
breaking_changes?: undefined;
|
|
50
|
+
deprecations?: undefined;
|
|
51
|
+
migration_steps?: undefined;
|
|
52
|
+
testing_strategy?: undefined;
|
|
53
|
+
rollback_strategy?: undefined;
|
|
54
|
+
risks?: undefined;
|
|
55
|
+
resources?: undefined;
|
|
56
|
+
} | {
|
|
57
|
+
success: boolean;
|
|
58
|
+
package: string;
|
|
59
|
+
from_version: string | undefined;
|
|
60
|
+
to_version: string;
|
|
61
|
+
complexity: "medium" | "low" | "high";
|
|
62
|
+
estimated_time: string;
|
|
63
|
+
upgrade_command: string;
|
|
64
|
+
install_command: string;
|
|
65
|
+
breaking_changes: import("../developer/validators/version-checker.js").BreakingChange[];
|
|
66
|
+
deprecations: import("../developer/validators/version-checker.js").DeprecationNotice[];
|
|
67
|
+
migration_steps: {
|
|
68
|
+
step: number;
|
|
69
|
+
title: string;
|
|
70
|
+
description: string;
|
|
71
|
+
commands: string[] | undefined;
|
|
72
|
+
code_changes: import("../developer/updaters/dependency-updater.js").CodeChange[] | undefined;
|
|
73
|
+
verification: string;
|
|
74
|
+
}[];
|
|
75
|
+
testing_strategy: string[];
|
|
76
|
+
rollback_strategy: string;
|
|
77
|
+
risks: {
|
|
78
|
+
level: "medium" | "low" | "high" | "critical";
|
|
79
|
+
factors: string[];
|
|
80
|
+
mitigations: string[];
|
|
81
|
+
};
|
|
82
|
+
resources: import("../developer/updaters/dependency-updater.js").MigrationResource[];
|
|
83
|
+
error?: undefined;
|
|
84
|
+
}>;
|
|
85
|
+
//# sourceMappingURL=generate-upgrade-report.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-upgrade-report.d.ts","sourceRoot":"","sources":["../../src/tools/generate-upgrade-report.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAcH,eAAO,MAAM,yBAAyB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CA+BrC,CAAC;AAEF,wBAAsB,2BAA2B,CAAC,IAAI,EAAE,OAAO;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4D9D"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool: generate_upgrade_report
|
|
3
|
+
*
|
|
4
|
+
* Generates comprehensive upgrade reports with migration guides, breaking changes,
|
|
5
|
+
* and rollback strategies for updating dependencies.
|
|
6
|
+
*/
|
|
7
|
+
import { z } from 'zod';
|
|
8
|
+
import { DependencyUpdater } from '../developer/updaters/dependency-updater.js';
|
|
9
|
+
import { VersionChecker } from '../developer/validators/version-checker.js';
|
|
10
|
+
import { logger } from '../utils/logger.js';
|
|
11
|
+
const GenerateUpgradeReportInputSchema = z.object({
|
|
12
|
+
package_name: z.string().describe('Package name to upgrade'),
|
|
13
|
+
current_version: z.string().optional().describe('Current version (auto-detected if not provided)'),
|
|
14
|
+
target_version: z.string().optional().describe('Target version (latest if not specified)'),
|
|
15
|
+
registry: z.enum(['npm', 'pypi', 'maven', 'cargo', 'go', 'nuget', 'gem']).default('npm').describe('Package registry'),
|
|
16
|
+
});
|
|
17
|
+
export const generateUpgradeReportTool = {
|
|
18
|
+
name: 'generate_upgrade_report',
|
|
19
|
+
description: 'Generates comprehensive upgrade reports for dependencies: breaking changes, migration steps, code changes needed, testing strategy, and rollback commands. Essential before major version upgrades.',
|
|
20
|
+
annotations: {
|
|
21
|
+
readOnlyHint: true,
|
|
22
|
+
destructiveHint: false,
|
|
23
|
+
openWorldHint: true, // Makes network requests
|
|
24
|
+
},
|
|
25
|
+
inputSchema: {
|
|
26
|
+
type: 'object',
|
|
27
|
+
properties: {
|
|
28
|
+
package_name: {
|
|
29
|
+
type: 'string',
|
|
30
|
+
description: 'Package name to upgrade',
|
|
31
|
+
},
|
|
32
|
+
current_version: {
|
|
33
|
+
type: 'string',
|
|
34
|
+
description: 'Current version (auto-detected if not provided)',
|
|
35
|
+
},
|
|
36
|
+
target_version: {
|
|
37
|
+
type: 'string',
|
|
38
|
+
description: 'Target version (latest if not specified)',
|
|
39
|
+
},
|
|
40
|
+
registry: {
|
|
41
|
+
type: 'string',
|
|
42
|
+
enum: ['npm', 'pypi', 'maven', 'cargo', 'go', 'nuget', 'gem'],
|
|
43
|
+
description: 'Package registry (default: npm)',
|
|
44
|
+
},
|
|
45
|
+
},
|
|
46
|
+
required: ['package_name'],
|
|
47
|
+
},
|
|
48
|
+
};
|
|
49
|
+
export async function handleGenerateUpgradeReport(args) {
|
|
50
|
+
try {
|
|
51
|
+
const input = GenerateUpgradeReportInputSchema.parse(args);
|
|
52
|
+
logger.info(`Generating upgrade report for ${input.package_name}`);
|
|
53
|
+
// First, get version info from the checker
|
|
54
|
+
const versionChecker = new VersionChecker();
|
|
55
|
+
const versionInfo = await versionChecker.checkVersion(input.package_name, input.current_version, input.registry);
|
|
56
|
+
if (!versionInfo.latestVersion) {
|
|
57
|
+
return {
|
|
58
|
+
success: false,
|
|
59
|
+
error: `Could not find version info for ${input.package_name} in ${input.registry} registry`,
|
|
60
|
+
};
|
|
61
|
+
}
|
|
62
|
+
// Generate the upgrade report
|
|
63
|
+
const updater = new DependencyUpdater();
|
|
64
|
+
const report = updater.generateUpgradeReport(versionInfo, input.current_version);
|
|
65
|
+
return {
|
|
66
|
+
success: true,
|
|
67
|
+
package: report.packageName,
|
|
68
|
+
from_version: report.fromVersion,
|
|
69
|
+
to_version: report.toVersion,
|
|
70
|
+
complexity: report.complexity,
|
|
71
|
+
estimated_time: report.estimatedTime,
|
|
72
|
+
upgrade_command: report.upgradeCommand,
|
|
73
|
+
install_command: report.installCommand,
|
|
74
|
+
breaking_changes: report.breakingChanges,
|
|
75
|
+
deprecations: report.deprecations,
|
|
76
|
+
migration_steps: report.migrationSteps.map(step => ({
|
|
77
|
+
step: step.step,
|
|
78
|
+
title: step.title,
|
|
79
|
+
description: step.description,
|
|
80
|
+
commands: step.commands,
|
|
81
|
+
code_changes: step.codeChanges,
|
|
82
|
+
verification: step.verification,
|
|
83
|
+
})),
|
|
84
|
+
testing_strategy: report.testingStrategy,
|
|
85
|
+
rollback_strategy: report.rollbackStrategy,
|
|
86
|
+
risks: {
|
|
87
|
+
level: report.risks.level,
|
|
88
|
+
factors: report.risks.factors,
|
|
89
|
+
mitigations: report.risks.mitigations,
|
|
90
|
+
},
|
|
91
|
+
resources: report.resources,
|
|
92
|
+
};
|
|
93
|
+
}
|
|
94
|
+
catch (error) {
|
|
95
|
+
logger.error('Error in generate_upgrade_report:', error);
|
|
96
|
+
return {
|
|
97
|
+
success: false,
|
|
98
|
+
error: error instanceof Error ? error.message : 'Unknown error',
|
|
99
|
+
};
|
|
100
|
+
}
|
|
101
|
+
}
|
|
102
|
+
//# sourceMappingURL=generate-upgrade-report.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"generate-upgrade-report.js","sourceRoot":"","sources":["../../src/tools/generate-upgrade-report.ts"],"names":[],"mappings":"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"}
|