mcp-adr-analysis-server 2.7.23 → 2.7.25
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/.tsbuildinfo +1 -1
- package/dist/src/tools/bootstrap-validation-loop-tool.d.ts +0 -178
- package/dist/src/tools/bootstrap-validation-loop-tool.d.ts.map +1 -1
- package/dist/src/tools/bootstrap-validation-loop-tool.js +0 -1580
- package/dist/src/tools/bootstrap-validation-loop-tool.js.map +1 -1
- package/dist/src/tools/deployment-guidance-tool.d.ts +19 -1
- package/dist/src/tools/deployment-guidance-tool.d.ts.map +1 -1
- package/dist/src/tools/deployment-guidance-tool.js +9 -4
- package/dist/src/tools/deployment-guidance-tool.js.map +1 -1
- package/package.json +1 -2
- package/dist/src/utils/dag-executor.d.ts +0 -106
- package/dist/src/utils/dag-executor.d.ts.map +0 -1
- package/dist/src/utils/dag-executor.js +0 -453
- package/dist/src/utils/dag-executor.js.map +0 -1
- package/dist/src/utils/deployment-task-integration.d.ts +0 -260
- package/dist/src/utils/deployment-task-integration.d.ts.map +0 -1
- package/dist/src/utils/deployment-task-integration.js +0 -393
- package/dist/src/utils/deployment-task-integration.js.map +0 -1
- package/dist/src/utils/dynamic-deployment-intelligence.d.ts +0 -117
- package/dist/src/utils/dynamic-deployment-intelligence.d.ts.map +0 -1
- package/dist/src/utils/dynamic-deployment-intelligence.js +0 -445
- package/dist/src/utils/dynamic-deployment-intelligence.js.map +0 -1
- package/dist/src/utils/pattern-contribution-helper.d.ts +0 -60
- package/dist/src/utils/pattern-contribution-helper.d.ts.map +0 -1
- package/dist/src/utils/pattern-contribution-helper.js +0 -308
- package/dist/src/utils/pattern-contribution-helper.js.map +0 -1
- package/dist/src/utils/pattern-loader.d.ts +0 -183
- package/dist/src/utils/pattern-loader.d.ts.map +0 -1
- package/dist/src/utils/pattern-loader.js +0 -198
- package/dist/src/utils/pattern-loader.js.map +0 -1
- package/dist/src/utils/pattern-to-dag-converter.d.ts +0 -62
- package/dist/src/utils/pattern-to-dag-converter.d.ts.map +0 -1
- package/dist/src/utils/pattern-to-dag-converter.js +0 -265
- package/dist/src/utils/pattern-to-dag-converter.js.map +0 -1
- package/dist/src/utils/resource-extractor.d.ts +0 -57
- package/dist/src/utils/resource-extractor.d.ts.map +0 -1
- package/dist/src/utils/resource-extractor.js +0 -323
- package/dist/src/utils/resource-extractor.js.map +0 -1
- package/dist/src/utils/system-card-manager.d.ts +0 -194
- package/dist/src/utils/system-card-manager.d.ts.map +0 -1
- package/dist/src/utils/system-card-manager.js +0 -336
- package/dist/src/utils/system-card-manager.js.map +0 -1
|
@@ -1,117 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dynamic Deployment Intelligence System
|
|
3
|
-
*
|
|
4
|
-
* Instead of static registry, this uses:
|
|
5
|
-
* 1. AI + ResearchOrchestrator to query LIVE documentation
|
|
6
|
-
* 2. Environment detection to see what's actually available
|
|
7
|
-
* 3. Memory system to learn from successful deployments
|
|
8
|
-
* 4. Fallback to basic templates when needed
|
|
9
|
-
*
|
|
10
|
-
* This stays current as software updates daily and best practices evolve.
|
|
11
|
-
*/
|
|
12
|
-
export interface DynamicDeploymentPlan {
|
|
13
|
-
detectedPlatforms: string[];
|
|
14
|
-
recommendedPlatform: string;
|
|
15
|
-
confidence: number;
|
|
16
|
-
requiredFiles: DeploymentFileRequirement[];
|
|
17
|
-
environmentVariables: EnvironmentVariable[];
|
|
18
|
-
deploymentSteps: DeploymentStep[];
|
|
19
|
-
validationChecks: ValidationCheck[];
|
|
20
|
-
architectureDiagram: string;
|
|
21
|
-
risks: DeploymentRisk[];
|
|
22
|
-
estimatedDuration: string;
|
|
23
|
-
prerequisites: string[];
|
|
24
|
-
source: 'ai-research' | 'memory-pattern' | 'fallback-template';
|
|
25
|
-
researchSources: string[];
|
|
26
|
-
timestamp: string;
|
|
27
|
-
}
|
|
28
|
-
export interface DeploymentFileRequirement {
|
|
29
|
-
path: string;
|
|
30
|
-
purpose: string;
|
|
31
|
-
required: boolean;
|
|
32
|
-
isSecret: boolean;
|
|
33
|
-
canAutoGenerate: boolean;
|
|
34
|
-
templateContent?: string;
|
|
35
|
-
validationCommand?: string;
|
|
36
|
-
currentBestPractice: string;
|
|
37
|
-
lastUpdated: string;
|
|
38
|
-
}
|
|
39
|
-
export interface EnvironmentVariable {
|
|
40
|
-
name: string;
|
|
41
|
-
purpose: string;
|
|
42
|
-
required: boolean;
|
|
43
|
-
isSecret: boolean;
|
|
44
|
-
defaultValue?: string;
|
|
45
|
-
validationPattern?: string;
|
|
46
|
-
}
|
|
47
|
-
export interface DeploymentStep {
|
|
48
|
-
order: number;
|
|
49
|
-
title: string;
|
|
50
|
-
command: string;
|
|
51
|
-
description: string;
|
|
52
|
-
expectedOutput: string;
|
|
53
|
-
troubleshooting: string[];
|
|
54
|
-
estimatedTime: string;
|
|
55
|
-
}
|
|
56
|
-
export interface ValidationCheck {
|
|
57
|
-
name: string;
|
|
58
|
-
command: string;
|
|
59
|
-
expectedResult: string;
|
|
60
|
-
severity: 'critical' | 'error' | 'warning' | 'info';
|
|
61
|
-
}
|
|
62
|
-
export interface DeploymentRisk {
|
|
63
|
-
risk: string;
|
|
64
|
-
severity: 'high' | 'medium' | 'low';
|
|
65
|
-
mitigation: string;
|
|
66
|
-
likelihood: string;
|
|
67
|
-
}
|
|
68
|
-
export declare class DynamicDeploymentIntelligence {
|
|
69
|
-
private research;
|
|
70
|
-
private memory;
|
|
71
|
-
private logger;
|
|
72
|
-
private projectPath;
|
|
73
|
-
private adrDirectory;
|
|
74
|
-
constructor(projectPath: string, adrDirectory: string);
|
|
75
|
-
/**
|
|
76
|
-
* Generate a comprehensive, AI-powered deployment plan
|
|
77
|
-
* Uses live research + learned patterns + environment detection
|
|
78
|
-
*/
|
|
79
|
-
generateDeploymentPlan(): Promise<DynamicDeploymentPlan>;
|
|
80
|
-
/**
|
|
81
|
-
* Detect which deployment platforms are available in the current environment
|
|
82
|
-
*/
|
|
83
|
-
private detectAvailableDeploymentPlatforms;
|
|
84
|
-
/**
|
|
85
|
-
* Analyze ADRs to understand deployment context and requirements
|
|
86
|
-
*/
|
|
87
|
-
private analyzeAdrDeploymentContext;
|
|
88
|
-
/**
|
|
89
|
-
* Query memory system for learned deployment patterns
|
|
90
|
-
*/
|
|
91
|
-
private queryLearnedDeploymentPatterns;
|
|
92
|
-
/**
|
|
93
|
-
* Research current best practices from live documentation
|
|
94
|
-
*/
|
|
95
|
-
private researchCurrentDeploymentBestPractices;
|
|
96
|
-
/**
|
|
97
|
-
* Generate AI-powered deployment plan by synthesizing all inputs
|
|
98
|
-
*/
|
|
99
|
-
private generateAIPoweredDeploymentPlan;
|
|
100
|
-
/**
|
|
101
|
-
* Store successful deployment pattern in memory for learning
|
|
102
|
-
*/
|
|
103
|
-
private storeDeploymentPattern;
|
|
104
|
-
/**
|
|
105
|
-
* Enhance learned pattern with latest information
|
|
106
|
-
*/
|
|
107
|
-
private enhanceLearnedPattern;
|
|
108
|
-
/**
|
|
109
|
-
* Generate fallback plan using static templates when AI fails
|
|
110
|
-
*/
|
|
111
|
-
private generateFallbackPlan;
|
|
112
|
-
/**
|
|
113
|
-
* Update a deployment plan with post-execution learnings
|
|
114
|
-
*/
|
|
115
|
-
updatePlanWithLearnings(plan: DynamicDeploymentPlan, executionResult: any, _learnings: any[]): Promise<DynamicDeploymentPlan>;
|
|
116
|
-
}
|
|
117
|
-
//# sourceMappingURL=dynamic-deployment-intelligence.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-deployment-intelligence.d.ts","sourceRoot":"","sources":["../../../src/utils/dynamic-deployment-intelligence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,445 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Dynamic Deployment Intelligence System
|
|
3
|
-
*
|
|
4
|
-
* Instead of static registry, this uses:
|
|
5
|
-
* 1. AI + ResearchOrchestrator to query LIVE documentation
|
|
6
|
-
* 2. Environment detection to see what's actually available
|
|
7
|
-
* 3. Memory system to learn from successful deployments
|
|
8
|
-
* 4. Fallback to basic templates when needed
|
|
9
|
-
*
|
|
10
|
-
* This stays current as software updates daily and best practices evolve.
|
|
11
|
-
*/
|
|
12
|
-
import { ResearchOrchestrator } from './research-orchestrator.js';
|
|
13
|
-
import { MemoryEntityManager } from './memory-entity-manager.js';
|
|
14
|
-
import { EnhancedLogger } from './enhanced-logging.js';
|
|
15
|
-
import { getAIExecutor } from './ai-executor.js';
|
|
16
|
-
import { DEPLOYMENT_TYPES } from './deployment-type-registry.js';
|
|
17
|
-
import { promises as fs } from 'fs';
|
|
18
|
-
import { exec } from 'node:child_process';
|
|
19
|
-
import { promisify } from 'util';
|
|
20
|
-
import * as path from 'path';
|
|
21
|
-
const execAsync = promisify(exec);
|
|
22
|
-
export class DynamicDeploymentIntelligence {
|
|
23
|
-
research;
|
|
24
|
-
memory;
|
|
25
|
-
logger;
|
|
26
|
-
projectPath;
|
|
27
|
-
adrDirectory;
|
|
28
|
-
constructor(projectPath, adrDirectory) {
|
|
29
|
-
this.projectPath = projectPath;
|
|
30
|
-
this.adrDirectory = adrDirectory;
|
|
31
|
-
this.research = new ResearchOrchestrator(projectPath, adrDirectory);
|
|
32
|
-
this.memory = new MemoryEntityManager();
|
|
33
|
-
this.logger = new EnhancedLogger();
|
|
34
|
-
}
|
|
35
|
-
/**
|
|
36
|
-
* Generate a comprehensive, AI-powered deployment plan
|
|
37
|
-
* Uses live research + learned patterns + environment detection
|
|
38
|
-
*/
|
|
39
|
-
async generateDeploymentPlan() {
|
|
40
|
-
this.logger.info('Starting dynamic deployment plan generation', 'DynamicDeploymentIntelligence');
|
|
41
|
-
// Step 1: Detect what deployment platforms are available in environment
|
|
42
|
-
const availablePlatforms = await this.detectAvailableDeploymentPlatforms();
|
|
43
|
-
this.logger.info(`Detected available platforms: ${availablePlatforms.join(', ')}`, 'DynamicDeploymentIntelligence');
|
|
44
|
-
// Step 2: Analyze ADRs to understand architecture decisions
|
|
45
|
-
const adrContext = await this.analyzeAdrDeploymentContext();
|
|
46
|
-
// Step 3: Check memory for similar successful deployments
|
|
47
|
-
const learnedPatterns = await this.queryLearnedDeploymentPatterns(availablePlatforms, adrContext);
|
|
48
|
-
// Step 4: If learned pattern exists with high confidence, use it
|
|
49
|
-
if (learnedPatterns && learnedPatterns.confidence > 0.8) {
|
|
50
|
-
this.logger.info('Using learned deployment pattern from memory', 'DynamicDeploymentIntelligence');
|
|
51
|
-
return this.enhanceLearnedPattern(learnedPatterns);
|
|
52
|
-
}
|
|
53
|
-
// Step 5: Research live documentation for current best practices
|
|
54
|
-
const researchResults = await this.researchCurrentDeploymentBestPractices(availablePlatforms, adrContext);
|
|
55
|
-
// Step 6: Use AI to synthesize research + ADRs + environment into deployment plan
|
|
56
|
-
const aiGeneratedPlan = await this.generateAIPoweredDeploymentPlan(availablePlatforms, adrContext, researchResults);
|
|
57
|
-
// Step 7: Store this pattern in memory for future learning
|
|
58
|
-
await this.storeDeploymentPattern(aiGeneratedPlan);
|
|
59
|
-
return aiGeneratedPlan;
|
|
60
|
-
}
|
|
61
|
-
/**
|
|
62
|
-
* Detect which deployment platforms are available in the current environment
|
|
63
|
-
*/
|
|
64
|
-
async detectAvailableDeploymentPlatforms() {
|
|
65
|
-
const platforms = [];
|
|
66
|
-
// Check for various deployment tools
|
|
67
|
-
const checks = [
|
|
68
|
-
{ name: 'docker', command: 'docker --version' },
|
|
69
|
-
{ name: 'kubernetes', command: 'kubectl version --client' },
|
|
70
|
-
{ name: 'openshift', command: 'oc version' },
|
|
71
|
-
{ name: 'firebase', command: 'firebase --version' },
|
|
72
|
-
{ name: 'ansible', command: 'ansible --version' },
|
|
73
|
-
{ name: 'terraform', command: 'terraform --version' },
|
|
74
|
-
{ name: 'npm', command: 'npm --version' },
|
|
75
|
-
{ name: 'python', command: 'python --version' },
|
|
76
|
-
{ name: 'python3', command: 'python3 --version' },
|
|
77
|
-
{ name: 'node', command: 'node --version' },
|
|
78
|
-
{ name: 'pip', command: 'pip --version' },
|
|
79
|
-
{ name: 'uvx', command: 'uvx --version' },
|
|
80
|
-
];
|
|
81
|
-
for (const check of checks) {
|
|
82
|
-
try {
|
|
83
|
-
await execAsync(check.command);
|
|
84
|
-
platforms.push(check.name);
|
|
85
|
-
}
|
|
86
|
-
catch {
|
|
87
|
-
// Tool not available
|
|
88
|
-
}
|
|
89
|
-
}
|
|
90
|
-
// Check for deployment-related files
|
|
91
|
-
const fileChecks = [
|
|
92
|
-
{ name: 'docker', files: ['Dockerfile', 'docker-compose.yml'] },
|
|
93
|
-
{ name: 'kubernetes', files: ['k8s/', 'kubernetes/'] },
|
|
94
|
-
{ name: 'openshift', files: ['openshift/', '.s2i/', 'k8s/', 'kubernetes/'] }, // OpenShift can use k8s dirs too
|
|
95
|
-
{ name: 'firebase', files: ['firebase.json'] },
|
|
96
|
-
{ name: 'mcp-nodejs', files: ['package.json'] }, // Check package.json for MCP dependencies
|
|
97
|
-
{ name: 'fastmcp', files: ['server.py', 'pyproject.toml', 'requirements.txt'] },
|
|
98
|
-
];
|
|
99
|
-
for (const check of fileChecks) {
|
|
100
|
-
for (const file of check.files) {
|
|
101
|
-
try {
|
|
102
|
-
await fs.access(path.join(this.projectPath, file));
|
|
103
|
-
if (!platforms.includes(check.name)) {
|
|
104
|
-
platforms.push(check.name);
|
|
105
|
-
}
|
|
106
|
-
}
|
|
107
|
-
catch {
|
|
108
|
-
// File doesn't exist
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
}
|
|
112
|
-
return platforms;
|
|
113
|
-
}
|
|
114
|
-
/**
|
|
115
|
-
* Analyze ADRs to understand deployment context and requirements
|
|
116
|
-
*/
|
|
117
|
-
async analyzeAdrDeploymentContext() {
|
|
118
|
-
try {
|
|
119
|
-
const { discoverAdrsInDirectory } = await import('./adr-discovery.js');
|
|
120
|
-
const adrs = await discoverAdrsInDirectory(this.adrDirectory, this.projectPath, {
|
|
121
|
-
includeContent: true,
|
|
122
|
-
includeTimeline: false,
|
|
123
|
-
});
|
|
124
|
-
// Extract deployment-related information from ADRs
|
|
125
|
-
const deploymentContext = {
|
|
126
|
-
technologies: new Set(),
|
|
127
|
-
platforms: new Set(),
|
|
128
|
-
requirements: new Set(),
|
|
129
|
-
constraints: new Set(),
|
|
130
|
-
};
|
|
131
|
-
for (const adr of adrs.adrs) {
|
|
132
|
-
const content = adr.content || '';
|
|
133
|
-
// Look for technology mentions
|
|
134
|
-
const techPatterns = [
|
|
135
|
-
/node\.?js/gi,
|
|
136
|
-
/python/gi,
|
|
137
|
-
/docker/gi,
|
|
138
|
-
/kubernetes/gi,
|
|
139
|
-
/k8s/gi,
|
|
140
|
-
/openshift/gi,
|
|
141
|
-
/firebase/gi,
|
|
142
|
-
/mcp[ -]server/gi,
|
|
143
|
-
/fastmcp/gi,
|
|
144
|
-
/@modelcontextprotocol/gi,
|
|
145
|
-
/uvx/gi,
|
|
146
|
-
/ansible/gi,
|
|
147
|
-
];
|
|
148
|
-
for (const pattern of techPatterns) {
|
|
149
|
-
const matches = content.match(pattern);
|
|
150
|
-
if (matches) {
|
|
151
|
-
deploymentContext.technologies.add(matches[0].toLowerCase());
|
|
152
|
-
}
|
|
153
|
-
}
|
|
154
|
-
// Extract requirements
|
|
155
|
-
if (content.includes('Requirements') || content.includes('Constraints')) {
|
|
156
|
-
const lines = content.split('\n');
|
|
157
|
-
for (const line of lines) {
|
|
158
|
-
if (line.includes('must') || line.includes('should') || line.includes('shall')) {
|
|
159
|
-
deploymentContext.requirements.add(line.trim());
|
|
160
|
-
}
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
}
|
|
164
|
-
return {
|
|
165
|
-
technologies: Array.from(deploymentContext.technologies),
|
|
166
|
-
platforms: Array.from(deploymentContext.platforms),
|
|
167
|
-
requirements: Array.from(deploymentContext.requirements),
|
|
168
|
-
constraints: Array.from(deploymentContext.constraints),
|
|
169
|
-
totalAdrs: adrs.adrs.length,
|
|
170
|
-
};
|
|
171
|
-
}
|
|
172
|
-
catch (error) {
|
|
173
|
-
this.logger.warn('Failed to analyze ADR context', 'DynamicDeploymentIntelligence', error);
|
|
174
|
-
return { technologies: [], platforms: [], requirements: [], constraints: [] };
|
|
175
|
-
}
|
|
176
|
-
}
|
|
177
|
-
/**
|
|
178
|
-
* Query memory system for learned deployment patterns
|
|
179
|
-
*/
|
|
180
|
-
async queryLearnedDeploymentPatterns(platforms, _adrContext) {
|
|
181
|
-
try {
|
|
182
|
-
const result = await this.memory.queryEntities({
|
|
183
|
-
entityTypes: ['knowledge_artifact'],
|
|
184
|
-
limit: 5,
|
|
185
|
-
});
|
|
186
|
-
// Find most similar deployment pattern
|
|
187
|
-
for (const entity of result.entities) {
|
|
188
|
-
// Only process knowledge artifacts that are deployment patterns
|
|
189
|
-
if (entity.type !== 'knowledge_artifact')
|
|
190
|
-
continue;
|
|
191
|
-
try {
|
|
192
|
-
const plan = JSON.parse(entity.artifactData.content);
|
|
193
|
-
// Check if platforms match
|
|
194
|
-
const platformMatch = platforms.some(p => plan.detectedPlatforms?.includes(p));
|
|
195
|
-
if (platformMatch && plan.confidence > 0.8) {
|
|
196
|
-
this.logger.info('Found matching learned pattern', 'DynamicDeploymentIntelligence', {
|
|
197
|
-
patternId: entity.id,
|
|
198
|
-
confidence: plan.confidence,
|
|
199
|
-
});
|
|
200
|
-
return plan;
|
|
201
|
-
}
|
|
202
|
-
}
|
|
203
|
-
catch {
|
|
204
|
-
// Skip entities that don't contain valid deployment plans
|
|
205
|
-
continue;
|
|
206
|
-
}
|
|
207
|
-
}
|
|
208
|
-
return null;
|
|
209
|
-
}
|
|
210
|
-
catch (error) {
|
|
211
|
-
this.logger.warn('Failed to query learned patterns', 'DynamicDeploymentIntelligence', error);
|
|
212
|
-
return null;
|
|
213
|
-
}
|
|
214
|
-
}
|
|
215
|
-
/**
|
|
216
|
-
* Research current best practices from live documentation
|
|
217
|
-
*/
|
|
218
|
-
async researchCurrentDeploymentBestPractices(platforms, _adrContext) {
|
|
219
|
-
const researchResults = {};
|
|
220
|
-
for (const platform of platforms) {
|
|
221
|
-
try {
|
|
222
|
-
// Research current best practices for this platform
|
|
223
|
-
const result = await this.research.answerResearchQuestion(`What are the current ${platform} deployment best practices and requirements in 2025? Include required files, configuration, and validation steps.`);
|
|
224
|
-
researchResults[platform] = {
|
|
225
|
-
answer: result.answer,
|
|
226
|
-
confidence: result.confidence,
|
|
227
|
-
sources: result.sources,
|
|
228
|
-
};
|
|
229
|
-
this.logger.info(`Researched ${platform} best practices`, 'DynamicDeploymentIntelligence', {
|
|
230
|
-
confidence: result.confidence,
|
|
231
|
-
});
|
|
232
|
-
}
|
|
233
|
-
catch (error) {
|
|
234
|
-
this.logger.warn(`Failed to research ${platform}`, 'DynamicDeploymentIntelligence', error);
|
|
235
|
-
}
|
|
236
|
-
}
|
|
237
|
-
return researchResults;
|
|
238
|
-
}
|
|
239
|
-
/**
|
|
240
|
-
* Generate AI-powered deployment plan by synthesizing all inputs
|
|
241
|
-
*/
|
|
242
|
-
async generateAIPoweredDeploymentPlan(platforms, adrContext, researchResults) {
|
|
243
|
-
const prompt = `You are an expert DevOps architect. Generate a comprehensive deployment plan.
|
|
244
|
-
|
|
245
|
-
**Available Platforms**: ${platforms.join(', ')}
|
|
246
|
-
**Project Technologies**: ${adrContext.technologies.join(', ')}
|
|
247
|
-
**ADR Requirements**: ${JSON.stringify(adrContext.requirements, null, 2)}
|
|
248
|
-
|
|
249
|
-
**Latest Research**:
|
|
250
|
-
${JSON.stringify(researchResults, null, 2)}
|
|
251
|
-
|
|
252
|
-
Generate a detailed deployment plan in JSON format with:
|
|
253
|
-
1. detectedPlatforms: array of detected platforms
|
|
254
|
-
2. recommendedPlatform: best platform choice with explanation
|
|
255
|
-
3. confidence: 0-1 confidence score
|
|
256
|
-
4. requiredFiles: array of files needed (path, purpose, required, isSecret, canAutoGenerate, templateContent, validationCommand, currentBestPractice, lastUpdated)
|
|
257
|
-
5. environmentVariables: array of env vars (name, purpose, required, isSecret, defaultValue, validationPattern)
|
|
258
|
-
6. deploymentSteps: ordered array of steps (order, title, command, description, expectedOutput, troubleshooting, estimatedTime)
|
|
259
|
-
7. validationChecks: array of checks (name, command, expectedResult, severity)
|
|
260
|
-
8. architectureDiagram: Mermaid diagram showing deployment flow
|
|
261
|
-
9. risks: array of deployment risks (risk, severity, mitigation, likelihood)
|
|
262
|
-
10. estimatedDuration: total time estimate
|
|
263
|
-
11. prerequisites: array of things needed before deployment
|
|
264
|
-
|
|
265
|
-
Focus on ${platforms[0] || 'docker'} as the primary platform.
|
|
266
|
-
Include current 2025 best practices from the research.
|
|
267
|
-
Make file paths and commands specific and actionable.
|
|
268
|
-
Include complete template content for generated files.`;
|
|
269
|
-
try {
|
|
270
|
-
const aiExecutor = getAIExecutor();
|
|
271
|
-
const result = await aiExecutor.executePrompt(prompt, {
|
|
272
|
-
temperature: 0.3,
|
|
273
|
-
maxTokens: 4000,
|
|
274
|
-
});
|
|
275
|
-
const plan = JSON.parse(result.content);
|
|
276
|
-
return {
|
|
277
|
-
...plan,
|
|
278
|
-
source: 'ai-research',
|
|
279
|
-
researchSources: Object.keys(researchResults),
|
|
280
|
-
timestamp: new Date().toISOString(),
|
|
281
|
-
};
|
|
282
|
-
}
|
|
283
|
-
catch (error) {
|
|
284
|
-
this.logger.error('Failed to generate AI deployment plan, using fallback', 'DynamicDeploymentIntelligence', error);
|
|
285
|
-
return this.generateFallbackPlan(platforms, adrContext);
|
|
286
|
-
}
|
|
287
|
-
}
|
|
288
|
-
/**
|
|
289
|
-
* Store successful deployment pattern in memory for learning
|
|
290
|
-
*/
|
|
291
|
-
async storeDeploymentPattern(plan) {
|
|
292
|
-
try {
|
|
293
|
-
await this.memory.upsertEntity({
|
|
294
|
-
type: 'knowledge_artifact',
|
|
295
|
-
title: `Deployment Pattern: ${plan.recommendedPlatform}`,
|
|
296
|
-
description: `Deployment plan for ${plan.detectedPlatforms.join(', ')} platforms with ${plan.confidence} confidence`,
|
|
297
|
-
artifactData: {
|
|
298
|
-
artifactType: 'pattern',
|
|
299
|
-
content: JSON.stringify(plan, null, 2),
|
|
300
|
-
format: 'json',
|
|
301
|
-
sourceReliability: plan.confidence,
|
|
302
|
-
applicabilityScope: plan.detectedPlatforms,
|
|
303
|
-
lastValidated: plan.timestamp,
|
|
304
|
-
keyInsights: [
|
|
305
|
-
`Recommended platform: ${plan.recommendedPlatform}`,
|
|
306
|
-
`Confidence: ${plan.confidence}`,
|
|
307
|
-
`Required files: ${plan.requiredFiles.length}`,
|
|
308
|
-
`Deployment steps: ${plan.deploymentSteps.length}`,
|
|
309
|
-
],
|
|
310
|
-
actionableItems: plan.deploymentSteps.slice(0, 5).map((step, index) => ({
|
|
311
|
-
action: step.title,
|
|
312
|
-
priority: index < 2 ? 'high' : 'medium',
|
|
313
|
-
timeframe: step.estimatedTime,
|
|
314
|
-
dependencies: [],
|
|
315
|
-
})),
|
|
316
|
-
},
|
|
317
|
-
});
|
|
318
|
-
this.logger.info('Stored deployment pattern in memory', 'DynamicDeploymentIntelligence');
|
|
319
|
-
}
|
|
320
|
-
catch (error) {
|
|
321
|
-
this.logger.warn('Failed to store deployment pattern', 'DynamicDeploymentIntelligence', error);
|
|
322
|
-
}
|
|
323
|
-
}
|
|
324
|
-
/**
|
|
325
|
-
* Enhance learned pattern with latest information
|
|
326
|
-
*/
|
|
327
|
-
async enhanceLearnedPattern(learnedPattern) {
|
|
328
|
-
// Update timestamp and source
|
|
329
|
-
return {
|
|
330
|
-
...learnedPattern,
|
|
331
|
-
source: 'memory-pattern',
|
|
332
|
-
timestamp: new Date().toISOString(),
|
|
333
|
-
};
|
|
334
|
-
}
|
|
335
|
-
/**
|
|
336
|
-
* Generate fallback plan using static templates when AI fails
|
|
337
|
-
*/
|
|
338
|
-
generateFallbackPlan(platforms, _adrContext) {
|
|
339
|
-
this.logger.warn('Using fallback deployment plan', 'DynamicDeploymentIntelligence');
|
|
340
|
-
const primaryPlatform = platforms[0] || 'docker';
|
|
341
|
-
const staticTemplate = DEPLOYMENT_TYPES.find(t => t.id === primaryPlatform);
|
|
342
|
-
// If no template found, return minimal plan
|
|
343
|
-
if (!staticTemplate) {
|
|
344
|
-
return {
|
|
345
|
-
detectedPlatforms: platforms,
|
|
346
|
-
recommendedPlatform: primaryPlatform,
|
|
347
|
-
confidence: 0.3,
|
|
348
|
-
requiredFiles: [],
|
|
349
|
-
environmentVariables: [],
|
|
350
|
-
deploymentSteps: [],
|
|
351
|
-
validationChecks: [],
|
|
352
|
-
architectureDiagram: `graph TD\n A[Source Code] --> B[Build]\n B --> C[Deploy]\n C --> D[Validate]`,
|
|
353
|
-
risks: [
|
|
354
|
-
{
|
|
355
|
-
risk: 'No template available for detected platform',
|
|
356
|
-
severity: 'high',
|
|
357
|
-
mitigation: 'Manual configuration required',
|
|
358
|
-
likelihood: 'high',
|
|
359
|
-
},
|
|
360
|
-
],
|
|
361
|
-
estimatedDuration: 'Unknown',
|
|
362
|
-
prerequisites: ['Platform-specific setup'],
|
|
363
|
-
source: 'fallback-template',
|
|
364
|
-
researchSources: [],
|
|
365
|
-
timestamp: new Date().toISOString(),
|
|
366
|
-
};
|
|
367
|
-
}
|
|
368
|
-
return {
|
|
369
|
-
detectedPlatforms: platforms,
|
|
370
|
-
recommendedPlatform: primaryPlatform,
|
|
371
|
-
confidence: 0.5,
|
|
372
|
-
requiredFiles: staticTemplate.requiredFiles.map(f => {
|
|
373
|
-
const fileReq = {
|
|
374
|
-
path: f.path,
|
|
375
|
-
purpose: f.description,
|
|
376
|
-
required: f.required,
|
|
377
|
-
isSecret: f.isSecret,
|
|
378
|
-
canAutoGenerate: f.canAutoGenerate,
|
|
379
|
-
currentBestPractice: 'Using fallback template - update recommended',
|
|
380
|
-
lastUpdated: new Date().toISOString(),
|
|
381
|
-
};
|
|
382
|
-
// Only add optional properties if they have values
|
|
383
|
-
if (f.templateContent) {
|
|
384
|
-
fileReq.templateContent = f.templateContent;
|
|
385
|
-
}
|
|
386
|
-
if (f.validationRules?.[0]) {
|
|
387
|
-
fileReq.validationCommand = f.validationRules[0];
|
|
388
|
-
}
|
|
389
|
-
return fileReq;
|
|
390
|
-
}),
|
|
391
|
-
environmentVariables: staticTemplate.environmentVariables.map(e => ({
|
|
392
|
-
name: e.name,
|
|
393
|
-
purpose: e.description,
|
|
394
|
-
required: e.required,
|
|
395
|
-
isSecret: e.isSecret,
|
|
396
|
-
})),
|
|
397
|
-
deploymentSteps: staticTemplate.deploymentCommands.map((cmd, i) => ({
|
|
398
|
-
order: i + 1,
|
|
399
|
-
title: `Step ${i + 1}`,
|
|
400
|
-
command: cmd,
|
|
401
|
-
description: `Execute ${cmd}`,
|
|
402
|
-
expectedOutput: 'Success',
|
|
403
|
-
troubleshooting: ['Check logs', 'Verify prerequisites'],
|
|
404
|
-
estimatedTime: '5 minutes',
|
|
405
|
-
})),
|
|
406
|
-
validationChecks: staticTemplate.validationCommands.map(cmd => ({
|
|
407
|
-
name: `Validate ${cmd}`,
|
|
408
|
-
command: cmd,
|
|
409
|
-
expectedResult: 'No errors',
|
|
410
|
-
severity: 'error',
|
|
411
|
-
})),
|
|
412
|
-
architectureDiagram: `graph TD\n A[Source Code] --> B[Build]\n B --> C[Deploy]\n C --> D[Validate]`,
|
|
413
|
-
risks: [
|
|
414
|
-
{
|
|
415
|
-
risk: 'Using fallback template - may be outdated',
|
|
416
|
-
severity: 'medium',
|
|
417
|
-
mitigation: 'Update to AI-generated plan when possible',
|
|
418
|
-
likelihood: 'high',
|
|
419
|
-
},
|
|
420
|
-
],
|
|
421
|
-
estimatedDuration: '30-60 minutes',
|
|
422
|
-
prerequisites: ['Platform tools installed', 'Credentials configured'],
|
|
423
|
-
source: 'fallback-template',
|
|
424
|
-
researchSources: [],
|
|
425
|
-
timestamp: new Date().toISOString(),
|
|
426
|
-
};
|
|
427
|
-
}
|
|
428
|
-
/**
|
|
429
|
-
* Update a deployment plan with post-execution learnings
|
|
430
|
-
*/
|
|
431
|
-
async updatePlanWithLearnings(plan, executionResult, _learnings) {
|
|
432
|
-
const updatedPlan = { ...plan };
|
|
433
|
-
// Increase confidence if deployment was successful
|
|
434
|
-
if (executionResult.success) {
|
|
435
|
-
updatedPlan.confidence = Math.min(1.0, updatedPlan.confidence + 0.1);
|
|
436
|
-
}
|
|
437
|
-
else {
|
|
438
|
-
updatedPlan.confidence = Math.max(0.3, updatedPlan.confidence - 0.1);
|
|
439
|
-
}
|
|
440
|
-
// Store updated pattern
|
|
441
|
-
await this.storeDeploymentPattern(updatedPlan);
|
|
442
|
-
return updatedPlan;
|
|
443
|
-
}
|
|
444
|
-
}
|
|
445
|
-
//# sourceMappingURL=dynamic-deployment-intelligence.js.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"dynamic-deployment-intelligence.js","sourceRoot":"","sources":["../../../src/utils/dynamic-deployment-intelligence.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,60 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Pattern Contribution Helper
|
|
3
|
-
*
|
|
4
|
-
* Helps users contribute missing patterns to the validatedpatterns project
|
|
5
|
-
* by creating well-formatted GitHub issues with detection evidence.
|
|
6
|
-
*/
|
|
7
|
-
import type { PlatformDetectionResult } from './platform-detector.js';
|
|
8
|
-
/**
|
|
9
|
-
* GitHub issue creation result
|
|
10
|
-
*/
|
|
11
|
-
export interface GitHubIssueResult {
|
|
12
|
-
success: boolean;
|
|
13
|
-
issueUrl?: string;
|
|
14
|
-
issueNumber?: number;
|
|
15
|
-
issueTitle: string;
|
|
16
|
-
issueBody: string;
|
|
17
|
-
error?: string;
|
|
18
|
-
}
|
|
19
|
-
/**
|
|
20
|
-
* Helper for creating GitHub issues for missing patterns
|
|
21
|
-
*/
|
|
22
|
-
export declare class PatternContributionHelper {
|
|
23
|
-
private logger;
|
|
24
|
-
constructor();
|
|
25
|
-
/**
|
|
26
|
-
* Prompt user to contribute missing pattern
|
|
27
|
-
*/
|
|
28
|
-
promptUserForContribution(platform: string, detection: PlatformDetectionResult): string;
|
|
29
|
-
/**
|
|
30
|
-
* Prepare GitHub issue content for missing pattern
|
|
31
|
-
*/
|
|
32
|
-
prepareIssueContent(platform: string, detection: PlatformDetectionResult): {
|
|
33
|
-
title: string;
|
|
34
|
-
body: string;
|
|
35
|
-
};
|
|
36
|
-
/**
|
|
37
|
-
* Create GitHub issue (placeholder for actual GitHub API integration)
|
|
38
|
-
*
|
|
39
|
-
* In production, this would use Octokit to create the issue.
|
|
40
|
-
* For now, it returns the issue content for manual creation.
|
|
41
|
-
*/
|
|
42
|
-
createGitHubIssue(platform: string, detection: PlatformDetectionResult, _options?: {
|
|
43
|
-
githubToken?: string;
|
|
44
|
-
repository?: string;
|
|
45
|
-
owner?: string;
|
|
46
|
-
}): Promise<GitHubIssueResult>;
|
|
47
|
-
/**
|
|
48
|
-
* Generate summary message for user after issue creation
|
|
49
|
-
*/
|
|
50
|
-
generateSuccessMessage(result: GitHubIssueResult, platform: string): string;
|
|
51
|
-
/**
|
|
52
|
-
* Check if GitHub token is configured for automatic issue creation
|
|
53
|
-
*/
|
|
54
|
-
isGitHubConfigured(): boolean;
|
|
55
|
-
/**
|
|
56
|
-
* Get GitHub configuration status message
|
|
57
|
-
*/
|
|
58
|
-
getConfigurationStatus(): string;
|
|
59
|
-
}
|
|
60
|
-
//# sourceMappingURL=pattern-contribution-helper.d.ts.map
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
{"version":3,"file":"pattern-contribution-helper.d.ts","sourceRoot":"","sources":["../../../src/utils/pattern-contribution-helper.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,KAAK,EAAE,uBAAuB,EAAE,MAAM,wBAAwB,CAAC;AAGtE;;GAEG;AACH,MAAM,WAAW,iBAAiB;IAChC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,EAAE,MAAM,CAAC;IACnB,SAAS,EAAE,MAAM,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,CAAC;CAChB;AAED;;GAEG;AACH,qBAAa,yBAAyB;IACpC,OAAO,CAAC,MAAM,CAAiB;;IAM/B;;OAEG;IACH,yBAAyB,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,uBAAuB,GAAG,MAAM;IA2CvF;;OAEG;IACH,mBAAmB,CACjB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,uBAAuB,GACjC;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE;IA4JlC;;;;;OAKG;IACG,iBAAiB,CACrB,QAAQ,EAAE,MAAM,EAChB,SAAS,EAAE,uBAAuB,EAClC,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,KAAK,CAAC,EAAE,MAAM,CAAC;KAChB,GACA,OAAO,CAAC,iBAAiB,CAAC;IA+C7B;;OAEG;IACH,sBAAsB,CAAC,MAAM,EAAE,iBAAiB,EAAE,QAAQ,EAAE,MAAM,GAAG,MAAM;IAuC3E;;OAEG;IACH,kBAAkB,IAAI,OAAO;IAI7B;;OAEG;IACH,sBAAsB,IAAI,MAAM;CAOjC"}
|