mcp-adr-analysis-server 2.0.3 → 2.0.5
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/src/index.d.ts +26 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +524 -325
- package/dist/src/index.js.map +1 -1
- package/dist/src/prompts/adr-suggestion-prompts.d.ts +1 -0
- package/dist/src/prompts/adr-suggestion-prompts.d.ts.map +1 -1
- package/dist/src/prompts/adr-suggestion-prompts.js +14 -6
- package/dist/src/prompts/adr-suggestion-prompts.js.map +1 -1
- package/dist/src/resources/index.d.ts.map +1 -1
- package/dist/src/resources/index.js +31 -15
- package/dist/src/resources/index.js.map +1 -1
- package/dist/src/tools/adr-suggestion-tool.d.ts +4 -1
- package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
- package/dist/src/tools/adr-suggestion-tool.js +72 -114
- package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
- package/dist/src/tools/content-masking-tool.d.ts +7 -0
- package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
- package/dist/src/tools/content-masking-tool.js +134 -17
- package/dist/src/tools/content-masking-tool.js.map +1 -1
- package/dist/src/tools/environment-analysis-tool.d.ts +4 -0
- package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
- package/dist/src/tools/environment-analysis-tool.js +209 -25
- package/dist/src/tools/environment-analysis-tool.js.map +1 -1
- package/dist/src/tools/research-question-tool.d.ts +4 -0
- package/dist/src/tools/research-question-tool.d.ts.map +1 -1
- package/dist/src/tools/research-question-tool.js +42 -4
- package/dist/src/tools/research-question-tool.js.map +1 -1
- package/dist/src/tools/rule-generation-tool.d.ts +4 -0
- package/dist/src/tools/rule-generation-tool.d.ts.map +1 -1
- package/dist/src/tools/rule-generation-tool.js +136 -16
- package/dist/src/tools/rule-generation-tool.js.map +1 -1
- package/dist/src/types/conversation-context.d.ts +93 -0
- package/dist/src/types/conversation-context.d.ts.map +1 -0
- package/dist/src/types/conversation-context.js +101 -0
- package/dist/src/types/conversation-context.js.map +1 -0
- package/dist/src/utils/actual-file-operations.d.ts +40 -0
- package/dist/src/utils/actual-file-operations.d.ts.map +1 -0
- package/dist/src/utils/actual-file-operations.js +309 -0
- package/dist/src/utils/actual-file-operations.js.map +1 -0
- package/dist/src/utils/adr-discovery.d.ts +36 -0
- package/dist/src/utils/adr-discovery.d.ts.map +1 -0
- package/dist/src/utils/adr-discovery.js +237 -0
- package/dist/src/utils/adr-discovery.js.map +1 -0
- package/dist/src/utils/adr-suggestions.d.ts +2 -1
- package/dist/src/utils/adr-suggestions.d.ts.map +1 -1
- package/dist/src/utils/adr-suggestions.js +8 -2
- package/dist/src/utils/adr-suggestions.js.map +1 -1
- package/dist/src/utils/apply-cot-enhancement.d.ts +46 -0
- package/dist/src/utils/apply-cot-enhancement.d.ts.map +1 -0
- package/dist/src/utils/apply-cot-enhancement.js +165 -0
- package/dist/src/utils/apply-cot-enhancement.js.map +1 -0
- package/dist/src/utils/chain-of-thought-template.d.ts +48 -0
- package/dist/src/utils/chain-of-thought-template.d.ts.map +1 -0
- package/dist/src/utils/chain-of-thought-template.js +191 -0
- package/dist/src/utils/chain-of-thought-template.js.map +1 -0
- package/dist/src/utils/deployment-analysis.d.ts +1 -0
- package/dist/src/utils/deployment-analysis.d.ts.map +1 -1
- package/dist/src/utils/deployment-analysis.js +82 -39
- package/dist/src/utils/deployment-analysis.js.map +1 -1
- package/dist/src/utils/environment-analysis.d.ts +6 -1
- package/dist/src/utils/environment-analysis.d.ts.map +1 -1
- package/dist/src/utils/environment-analysis.js +176 -87
- package/dist/src/utils/environment-analysis.js.map +1 -1
- package/dist/src/utils/file-system.d.ts +1 -0
- package/dist/src/utils/file-system.d.ts.map +1 -1
- package/dist/src/utils/file-system.js +24 -47
- package/dist/src/utils/file-system.js.map +1 -1
- package/dist/src/utils/prompt-execution.d.ts.map +1 -1
- package/dist/src/utils/prompt-execution.js +67 -3
- package/dist/src/utils/prompt-execution.js.map +1 -1
- package/dist/src/utils/research-integration.d.ts +4 -0
- package/dist/src/utils/research-integration.d.ts.map +1 -1
- package/dist/src/utils/research-integration.js +275 -84
- package/dist/src/utils/research-integration.js.map +1 -1
- package/dist/src/utils/research-questions.d.ts.map +1 -1
- package/dist/src/utils/research-questions.js +134 -38
- package/dist/src/utils/research-questions.js.map +1 -1
- package/dist/src/utils/rule-generation.d.ts +2 -1
- package/dist/src/utils/rule-generation.d.ts.map +1 -1
- package/dist/src/utils/rule-generation.js +65 -36
- package/dist/src/utils/rule-generation.js.map +1 -1
- package/package.json +4 -4
|
@@ -8,37 +8,63 @@ import { McpAdrError } from '../types/index.js';
|
|
|
8
8
|
*/
|
|
9
9
|
export async function identifyDeploymentTasks(adrDirectory = 'docs/adrs', todoPath) {
|
|
10
10
|
try {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
11
|
+
// Use actual ADR discovery instead of prompts
|
|
12
|
+
const { discoverAdrsInDirectory } = await import('./adr-discovery.js');
|
|
13
|
+
// Actually read ADR files
|
|
14
|
+
const discoveryResult = await discoverAdrsInDirectory(adrDirectory, true, process.cwd());
|
|
15
|
+
// Read TODO file if provided
|
|
16
|
+
let todoContent = '';
|
|
17
|
+
if (todoPath) {
|
|
18
|
+
try {
|
|
19
|
+
const fs = await import('fs/promises');
|
|
20
|
+
const path = await import('path');
|
|
21
|
+
const fullTodoPath = path.resolve(process.cwd(), todoPath);
|
|
22
|
+
todoContent = await fs.readFile(fullTodoPath, 'utf-8');
|
|
23
|
+
}
|
|
24
|
+
catch (error) {
|
|
25
|
+
console.warn(`Could not read TODO file at ${todoPath}: ${error}`);
|
|
26
|
+
todoContent = `[TODO file at ${todoPath} could not be read]`;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
16
29
|
// Create comprehensive deployment task identification prompt
|
|
17
30
|
const deploymentAnalysisPrompt = `
|
|
18
31
|
# Deployment Task Identification
|
|
19
32
|
|
|
20
|
-
|
|
33
|
+
Based on actual ADR file analysis and TODO content, identify deployment-related tasks:
|
|
21
34
|
|
|
22
|
-
##
|
|
35
|
+
## Discovered ADRs (${discoveryResult.totalAdrs} total)
|
|
23
36
|
|
|
24
|
-
${
|
|
37
|
+
${discoveryResult.adrs.length > 0 ?
|
|
38
|
+
discoveryResult.adrs.map((adr, index) => `
|
|
39
|
+
### ${index + 1}. ${adr.title}
|
|
40
|
+
- **File**: ${adr.filename}
|
|
41
|
+
- **Status**: ${adr.status}
|
|
42
|
+
- **Path**: ${adr.path}
|
|
43
|
+
${adr.metadata?.number ? `- **Number**: ${adr.metadata.number}` : ''}
|
|
25
44
|
|
|
26
|
-
|
|
45
|
+
#### ADR Content:
|
|
46
|
+
\`\`\`markdown
|
|
47
|
+
${adr.content || 'Content not available'}
|
|
48
|
+
\`\`\`
|
|
27
49
|
|
|
28
|
-
|
|
50
|
+
---
|
|
51
|
+
`).join('\n') : 'No ADRs found in the specified directory.'}
|
|
29
52
|
|
|
30
|
-
##
|
|
53
|
+
## TODO Content Analysis
|
|
31
54
|
|
|
32
55
|
${todoPath ? `
|
|
33
|
-
###
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
56
|
+
### TODO File: ${todoPath}
|
|
57
|
+
\`\`\`
|
|
58
|
+
${todoContent}
|
|
59
|
+
\`\`\`
|
|
60
|
+
|
|
61
|
+
Extract any deployment-related tasks, infrastructure requirements, or operational concerns from the actual TODO content above.
|
|
62
|
+
` : '**No TODO file provided.** Only ADR content will be analyzed for deployment tasks.'}
|
|
37
63
|
|
|
38
64
|
## Task Identification Criteria
|
|
39
65
|
|
|
40
|
-
For each ADR
|
|
41
|
-
1. Extract deployment-related decisions and requirements
|
|
66
|
+
For each ADR with **actual content** and TODO content shown above:
|
|
67
|
+
1. Extract deployment-related decisions and requirements from **actual ADR content**
|
|
42
68
|
2. Identify infrastructure components mentioned
|
|
43
69
|
3. Find CI/CD pipeline requirements
|
|
44
70
|
4. Detect operational concerns and monitoring needs
|
|
@@ -47,54 +73,71 @@ For each ADR file discovered:
|
|
|
47
73
|
## Required Output Format
|
|
48
74
|
|
|
49
75
|
Please provide deployment task analysis in JSON format with:
|
|
50
|
-
- Task identification and categorization
|
|
76
|
+
- Task identification and categorization based on actual content
|
|
51
77
|
- Priority and complexity assessment
|
|
52
|
-
- Dependencies between tasks
|
|
78
|
+
- Dependencies between tasks derived from actual ADR content
|
|
53
79
|
- Implementation timeline recommendations
|
|
54
80
|
|
|
55
|
-
## Next Steps
|
|
56
|
-
1. **Submit the identification prompt** to an AI agent for comprehensive task analysis
|
|
57
|
-
2. **Parse the JSON response** to get identified deployment tasks
|
|
58
|
-
3. **Review task dependencies** and deployment phases
|
|
59
|
-
4. **Use tasks** for deployment progress tracking and management
|
|
60
|
-
|
|
61
81
|
## Expected AI Response Format
|
|
62
82
|
The AI will return a JSON object with:
|
|
63
83
|
- \`deploymentTaskAnalysis\`: Overall analysis metadata and confidence
|
|
64
|
-
- \`identifiedTasks\`: Detailed deployment tasks with verification criteria
|
|
84
|
+
- \`identifiedTasks\`: Detailed deployment tasks with verification criteria based on actual content
|
|
65
85
|
- \`deploymentPhases\`: Organized deployment phases and sequencing
|
|
66
|
-
- \`deploymentDependencies\`: Task dependencies and constraints
|
|
86
|
+
- \`deploymentDependencies\`: Task dependencies and constraints from actual ADRs
|
|
67
87
|
- \`riskAssessment\`: Deployment risks and mitigation strategies
|
|
68
88
|
- \`recommendations\`: Process and tooling recommendations
|
|
69
|
-
|
|
70
|
-
## Usage Example
|
|
71
|
-
\`\`\`typescript
|
|
72
|
-
const result = await identifyDeploymentTasks(adrDirectory, todoPath);
|
|
73
|
-
// Submit result.identificationPrompt to AI agent
|
|
74
|
-
// Parse AI response for deployment tasks
|
|
75
|
-
\`\`\`
|
|
76
89
|
`;
|
|
77
90
|
const instructions = `
|
|
78
91
|
# Deployment Task Identification Instructions
|
|
79
92
|
|
|
80
|
-
This analysis
|
|
93
|
+
This analysis provides **actual ADR content and TODO content** to identify deployment-related tasks for comprehensive deployment tracking.
|
|
81
94
|
|
|
82
95
|
## Analysis Scope
|
|
83
96
|
- **ADR Directory**: ${adrDirectory}
|
|
84
|
-
- **
|
|
97
|
+
- **ADRs Found**: ${discoveryResult.totalAdrs} files
|
|
98
|
+
- **ADRs with Content**: ${discoveryResult.adrs.filter(adr => adr.content).length} ADRs
|
|
99
|
+
- **Todo Content**: ${todoPath ? `✅ Included (${todoContent.length} characters)` : '❌ Not provided'}
|
|
85
100
|
- **Task Categories**: Infrastructure, Application, CI/CD, Operational
|
|
86
101
|
|
|
102
|
+
## Discovered ADR Summary
|
|
103
|
+
${discoveryResult.adrs.map(adr => `- **${adr.title}** (${adr.status})`).join('\n')}
|
|
104
|
+
|
|
87
105
|
## Next Steps
|
|
88
|
-
1. **Submit the analysis prompt** to an AI agent for deployment task identification
|
|
106
|
+
1. **Submit the analysis prompt** to an AI agent for deployment task identification based on **actual content**
|
|
89
107
|
2. **Parse the JSON response** to get categorized deployment tasks
|
|
90
|
-
3. **Review task priorities** and dependencies
|
|
108
|
+
3. **Review task priorities** and dependencies derived from actual ADR content
|
|
91
109
|
4. **Use findings** for deployment planning and execution
|
|
92
110
|
|
|
93
|
-
|
|
111
|
+
## Expected AI Response Format
|
|
112
|
+
The AI will return a JSON object with:
|
|
113
|
+
- \`deploymentTaskAnalysis\`: Overall analysis metadata and confidence
|
|
114
|
+
- \`identifiedTasks\`: Detailed deployment tasks with verification criteria based on actual ADR content
|
|
115
|
+
- \`deploymentPhases\`: Organized deployment phases and sequencing
|
|
116
|
+
- \`deploymentDependencies\`: Task dependencies and constraints from actual ADRs
|
|
117
|
+
- \`riskAssessment\`: Deployment risks and mitigation strategies
|
|
118
|
+
- \`recommendations\`: Process and tooling recommendations
|
|
119
|
+
|
|
120
|
+
## Usage Example
|
|
121
|
+
\`\`\`typescript
|
|
122
|
+
const result = await identifyDeploymentTasks(adrDirectory, todoPath);
|
|
123
|
+
// Submit result.identificationPrompt to AI agent
|
|
124
|
+
// Parse AI response for deployment tasks based on actual ADR and TODO content
|
|
125
|
+
\`\`\`
|
|
94
126
|
`;
|
|
95
127
|
return {
|
|
96
128
|
identificationPrompt: deploymentAnalysisPrompt,
|
|
97
129
|
instructions,
|
|
130
|
+
actualData: {
|
|
131
|
+
discoveryResult,
|
|
132
|
+
todoContent,
|
|
133
|
+
todoPath,
|
|
134
|
+
summary: {
|
|
135
|
+
totalAdrs: discoveryResult.totalAdrs,
|
|
136
|
+
adrsWithContent: discoveryResult.adrs.filter(adr => adr.content).length,
|
|
137
|
+
todoProvided: !!todoPath,
|
|
138
|
+
todoLength: todoContent.length
|
|
139
|
+
}
|
|
140
|
+
}
|
|
98
141
|
};
|
|
99
142
|
}
|
|
100
143
|
catch (error) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"deployment-analysis.js","sourceRoot":"","sources":["../../../src/utils/deployment-analysis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAkChD;;GAEG;AACH,MAAM,CAAC,KAAK,UAAU,uBAAuB,CAC3C,eAAuB,WAAW,EAClC,QAAiB;IAEjB,IAAI,CAAC;QACH,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"deployment-analysis.js","sourceRoot":"","sources":["../../../src/utils/deployment-analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -51,6 +51,7 @@ export interface ComplianceAssessment {
|
|
|
51
51
|
export declare function analyzeEnvironmentSpecs(projectPath?: string): Promise<{
|
|
52
52
|
analysisPrompt: string;
|
|
53
53
|
instructions: string;
|
|
54
|
+
actualData?: any;
|
|
54
55
|
}>;
|
|
55
56
|
/**
|
|
56
57
|
* Detect containerization technologies
|
|
@@ -62,7 +63,7 @@ export declare function detectContainerization(projectPath?: string): Promise<{
|
|
|
62
63
|
/**
|
|
63
64
|
* Determine environment requirements from ADRs
|
|
64
65
|
*/
|
|
65
|
-
export declare function determineEnvironmentRequirements(adrDirectory?: string): Promise<{
|
|
66
|
+
export declare function determineEnvironmentRequirements(adrDirectory?: string, projectPath?: string): Promise<{
|
|
66
67
|
requirementsPrompt: string;
|
|
67
68
|
instructions: string;
|
|
68
69
|
}>;
|
|
@@ -73,4 +74,8 @@ export declare function assessEnvironmentCompliance(currentEnvironment: any, req
|
|
|
73
74
|
compliancePrompt: string;
|
|
74
75
|
instructions: string;
|
|
75
76
|
}>;
|
|
77
|
+
/**
|
|
78
|
+
* Find environment-related files in the project
|
|
79
|
+
* Returns mock data for prompt-driven architecture
|
|
80
|
+
*/
|
|
76
81
|
//# sourceMappingURL=environment-analysis.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-analysis.d.ts","sourceRoot":"","sources":["../../../src/utils/environment-analysis.ts"],"names":[],"mappings":"AAAA;;;GAGG;
|
|
1
|
+
{"version":3,"file":"environment-analysis.d.ts","sourceRoot":"","sources":["../../../src/utils/environment-analysis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AA+BH,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,MAAM,CAAC;IACjB,OAAO,EAAE,MAAM,CAAC;IAChB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,YAAY,GAAG,SAAS,GAAG,YAAY,GAAG,WAAW,GAAG,QAAQ,GAAG,OAAO,CAAC;CAClF;AAED,MAAM,WAAW,wBAAwB;IACvC,QAAQ,EAAE,OAAO,CAAC;IAClB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,WAAW,EAAE,GAAG,EAAE,CAAC;IACnB,YAAY,EAAE,GAAG,EAAE,CAAC;IACpB,mBAAmB,EAAE,GAAG,EAAE,CAAC;IAC3B,kBAAkB,EAAE,GAAG,CAAC;IACxB,kBAAkB,EAAE,GAAG,CAAC;IACxB,aAAa,EAAE,GAAG,CAAC;IACnB,eAAe,EAAE,GAAG,EAAE,CAAC;IACvB,gBAAgB,EAAE,GAAG,EAAE,CAAC;CACzB;AAED,MAAM,WAAW,uBAAuB;IACtC,cAAc,EAAE,GAAG,CAAC;IACpB,QAAQ,EAAE,GAAG,CAAC;IACd,QAAQ,EAAE,GAAG,CAAC;IACd,WAAW,EAAE,GAAG,CAAC;IACjB,uBAAuB,EAAE,GAAG,CAAC;IAC7B,IAAI,EAAE,GAAG,EAAE,CAAC;IACZ,eAAe,EAAE,GAAG,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,oBAAoB;IACnC,YAAY,EAAE,MAAM,CAAC;IACrB,cAAc,EAAE,MAAM,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,gBAAgB,EAAE,MAAM,CAAC;IACzB,cAAc,EAAE,GAAG,CAAC;IACpB,iBAAiB,EAAE,GAAG,EAAE,CAAC;IACzB,UAAU,EAAE,GAAG,EAAE,CAAC;IAClB,SAAS,EAAE,GAAG,EAAE,CAAC;IACjB,eAAe,EAAE,GAAG,EAAE,CAAC;IACvB,eAAe,EAAE,GAAG,CAAC;IACrB,cAAc,EAAE,GAAG,CAAC;IACpB,iBAAiB,EAAE,GAAG,CAAC;CACxB;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAC3C,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC;IAAE,cAAc,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,UAAU,CAAC,EAAE,GAAG,CAAA;CAAE,CAAC,CAwJ7E;AAED;;GAEG;AACH,wBAAsB,sBAAsB,CAC1C,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC;IAAE,eAAe,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAkG5D;AAED;;GAEG;AACH,wBAAsB,gCAAgC,CACpD,YAAY,GAAE,MAAoB,EAClC,WAAW,GAAE,MAAsB,GAClC,OAAO,CAAC;IAAE,kBAAkB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CAmG/D;AAED;;GAEG;AACH,wBAAsB,2BAA2B,CAC/C,kBAAkB,EAAE,GAAG,EACvB,YAAY,EAAE,GAAG,EACjB,iBAAiB,CAAC,EAAE,MAAM,EAAE,GAC3B,OAAO,CAAC;IAAE,gBAAgB,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAA;CAAE,CAAC,CA2D7D;AAED;;;GAGG"}
|
|
@@ -3,52 +3,132 @@
|
|
|
3
3
|
* Implements intelligent environment context analysis and compliance assessment
|
|
4
4
|
*/
|
|
5
5
|
import { McpAdrError } from '../types/index.js';
|
|
6
|
+
/**
|
|
7
|
+
* Helper function to get file extension for syntax highlighting
|
|
8
|
+
*/
|
|
9
|
+
function getFileExtension(filename) {
|
|
10
|
+
const ext = filename.split('.').pop()?.toLowerCase();
|
|
11
|
+
const mapping = {
|
|
12
|
+
'json': 'json',
|
|
13
|
+
'yml': 'yaml',
|
|
14
|
+
'yaml': 'yaml',
|
|
15
|
+
'js': 'javascript',
|
|
16
|
+
'ts': 'typescript',
|
|
17
|
+
'py': 'python',
|
|
18
|
+
'md': 'markdown',
|
|
19
|
+
'dockerfile': 'dockerfile',
|
|
20
|
+
'toml': 'toml',
|
|
21
|
+
'xml': 'xml',
|
|
22
|
+
'sh': 'bash',
|
|
23
|
+
'bash': 'bash',
|
|
24
|
+
'zsh': 'bash',
|
|
25
|
+
'fish': 'fish',
|
|
26
|
+
'ps1': 'powershell',
|
|
27
|
+
'bat': 'batch',
|
|
28
|
+
'cmd': 'batch'
|
|
29
|
+
};
|
|
30
|
+
return mapping[ext || ''] || 'bash'; // Default to bash for script files
|
|
31
|
+
}
|
|
6
32
|
/**
|
|
7
33
|
* Analyze system environment specifications
|
|
8
34
|
*/
|
|
9
35
|
export async function analyzeEnvironmentSpecs(projectPath = process.cwd()) {
|
|
10
36
|
try {
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
const
|
|
37
|
+
// Use actual file operations to scan project structure
|
|
38
|
+
const { scanProjectStructure, findActualEnvironmentFiles } = await import('./actual-file-operations.js');
|
|
39
|
+
// Actually read environment files
|
|
40
|
+
const environmentFiles = await findActualEnvironmentFiles(projectPath);
|
|
41
|
+
const projectStructure = await scanProjectStructure(projectPath, { readContent: true });
|
|
16
42
|
const analysisPrompt = `
|
|
17
43
|
# Environment Specification Analysis
|
|
18
44
|
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
## Project Analysis Instructions
|
|
22
|
-
|
|
23
|
-
${projectAnalysisPrompt.prompt}
|
|
24
|
-
|
|
25
|
-
## Implementation Steps
|
|
45
|
+
Based on actual file system analysis, here are the findings:
|
|
26
46
|
|
|
27
|
-
|
|
47
|
+
## Project Structure
|
|
48
|
+
- **Root Path**: ${projectStructure.rootPath}
|
|
49
|
+
- **Total Files Analyzed**: ${projectStructure.totalFiles}
|
|
50
|
+
- **Directories**: ${projectStructure.directories.join(', ')}
|
|
28
51
|
|
|
29
|
-
##
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
${
|
|
52
|
+
## Package Management
|
|
53
|
+
${projectStructure.packageFiles.length > 0 ?
|
|
54
|
+
projectStructure.packageFiles.map(f => `
|
|
55
|
+
### ${f.filename}
|
|
56
|
+
\`\`\`${getFileExtension(f.filename)}
|
|
57
|
+
${f.content.slice(0, 1000)}${f.content.length > 1000 ? '\n... (truncated)' : ''}
|
|
58
|
+
\`\`\`
|
|
59
|
+
`).join('\n') : '- No package files found'}
|
|
60
|
+
|
|
61
|
+
## Docker Configuration
|
|
62
|
+
${projectStructure.dockerFiles.length > 0 ?
|
|
63
|
+
projectStructure.dockerFiles.map(f => `
|
|
64
|
+
### ${f.filename}
|
|
65
|
+
\`\`\`${getFileExtension(f.filename)}
|
|
66
|
+
${f.content.slice(0, 1000)}${f.content.length > 1000 ? '\n... (truncated)' : ''}
|
|
67
|
+
\`\`\`
|
|
68
|
+
`).join('\n') : '- No Docker files found'}
|
|
69
|
+
|
|
70
|
+
## Environment Configuration
|
|
71
|
+
${environmentFiles.filter(f => f.filename.includes('.env')).length > 0 ?
|
|
72
|
+
environmentFiles.filter(f => f.filename.includes('.env')).map(f => `
|
|
73
|
+
### ${f.filename}
|
|
74
|
+
\`\`\`bash
|
|
75
|
+
${f.content.slice(0, 500)}${f.content.length > 500 ? '\n... (truncated)' : ''}
|
|
76
|
+
\`\`\`
|
|
77
|
+
`).join('\n') : '- No environment files found'}
|
|
78
|
+
|
|
79
|
+
## Kubernetes Manifests
|
|
80
|
+
${projectStructure.kubernetesFiles.length > 0 ?
|
|
81
|
+
projectStructure.kubernetesFiles.map(f => `
|
|
82
|
+
### ${f.filename}
|
|
83
|
+
\`\`\`yaml
|
|
84
|
+
${f.content.slice(0, 800)}${f.content.length > 800 ? '\n... (truncated)' : ''}
|
|
85
|
+
\`\`\`
|
|
86
|
+
`).join('\n') : '- No Kubernetes manifests found'}
|
|
87
|
+
|
|
88
|
+
## CI/CD Configuration
|
|
89
|
+
${projectStructure.ciFiles.length > 0 ?
|
|
90
|
+
projectStructure.ciFiles.map(f => `
|
|
91
|
+
### ${f.filename}
|
|
92
|
+
\`\`\`yaml
|
|
93
|
+
${f.content.slice(0, 600)}${f.content.length > 600 ? '\n... (truncated)' : ''}
|
|
94
|
+
\`\`\`
|
|
95
|
+
`).join('\n') : '- No CI/CD files found'}
|
|
96
|
+
|
|
97
|
+
## Shell Scripts & Automation
|
|
98
|
+
${projectStructure.scriptFiles.length > 0 ?
|
|
99
|
+
projectStructure.scriptFiles.map(f => `
|
|
100
|
+
### ${f.filename}
|
|
101
|
+
\`\`\`${getFileExtension(f.filename)}
|
|
102
|
+
${f.content.slice(0, 800)}${f.content.length > 800 ? '\n... (truncated)' : ''}
|
|
103
|
+
\`\`\`
|
|
104
|
+
`).join('\n') : '- No shell scripts found'}
|
|
33
105
|
|
|
34
106
|
## Analysis Requirements
|
|
35
107
|
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
|
|
108
|
+
Please analyze the above **actual file contents** to:
|
|
109
|
+
|
|
110
|
+
1. **Infrastructure Assessment**: Determine deployment patterns and infrastructure requirements
|
|
111
|
+
2. **Containerization Analysis**: Evaluate Docker and container orchestration setup
|
|
112
|
+
3. **Environment Configuration**: Analyze environment variables and configuration management
|
|
113
|
+
4. **Security Review**: Identify security configurations and potential vulnerabilities
|
|
114
|
+
5. **Scalability Assessment**: Evaluate scalability and performance characteristics
|
|
115
|
+
6. **Compliance Check**: Assess adherence to best practices and standards
|
|
116
|
+
7. **Optimization Recommendations**: Suggest improvements for deployment and operations
|
|
42
117
|
`;
|
|
43
118
|
const instructions = `
|
|
44
119
|
# Environment Specification Analysis Instructions
|
|
45
120
|
|
|
46
|
-
This analysis
|
|
121
|
+
This analysis provides **actual file contents** from the project for comprehensive environment assessment.
|
|
47
122
|
|
|
48
123
|
## Analysis Scope
|
|
49
124
|
- **Project Path**: ${projectPath}
|
|
50
125
|
- **Environment Files**: ${environmentFiles.length} files found
|
|
51
|
-
- **
|
|
126
|
+
- **Package Files**: ${projectStructure.packageFiles.length} found
|
|
127
|
+
- **Docker Files**: ${projectStructure.dockerFiles.length} found
|
|
128
|
+
- **Kubernetes Files**: ${projectStructure.kubernetesFiles.length} found
|
|
129
|
+
- **CI/CD Files**: ${projectStructure.ciFiles.length} found
|
|
130
|
+
- **Script Files**: ${projectStructure.scriptFiles.length} found
|
|
131
|
+
- **Total Files Analyzed**: ${projectStructure.totalFiles}
|
|
52
132
|
|
|
53
133
|
## Discovered Files
|
|
54
134
|
${environmentFiles.map(f => `- **${f.filename}** (${f.type}): ${f.path}`).join('\n')}
|
|
@@ -80,6 +160,19 @@ const result = await analyzeEnvironmentSpecs(projectPath);
|
|
|
80
160
|
return {
|
|
81
161
|
analysisPrompt,
|
|
82
162
|
instructions,
|
|
163
|
+
actualData: {
|
|
164
|
+
projectStructure,
|
|
165
|
+
environmentFiles,
|
|
166
|
+
summary: {
|
|
167
|
+
totalFiles: projectStructure.totalFiles,
|
|
168
|
+
packageFiles: projectStructure.packageFiles.length,
|
|
169
|
+
dockerFiles: projectStructure.dockerFiles.length,
|
|
170
|
+
kubernetesFiles: projectStructure.kubernetesFiles.length,
|
|
171
|
+
ciFiles: projectStructure.ciFiles.length,
|
|
172
|
+
scriptFiles: projectStructure.scriptFiles.length,
|
|
173
|
+
environmentFiles: environmentFiles.length
|
|
174
|
+
}
|
|
175
|
+
}
|
|
83
176
|
};
|
|
84
177
|
}
|
|
85
178
|
catch (error) {
|
|
@@ -91,34 +184,42 @@ const result = await analyzeEnvironmentSpecs(projectPath);
|
|
|
91
184
|
*/
|
|
92
185
|
export async function detectContainerization(projectPath = process.cwd()) {
|
|
93
186
|
try {
|
|
94
|
-
const {
|
|
95
|
-
//
|
|
96
|
-
const
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
106
|
-
|
|
107
|
-
|
|
108
|
-
|
|
109
|
-
|
|
187
|
+
const { scanProjectStructure } = await import('./actual-file-operations.js');
|
|
188
|
+
// Use actual project structure scanning
|
|
189
|
+
const projectStructure = await scanProjectStructure(projectPath, {
|
|
190
|
+
readContent: true,
|
|
191
|
+
includeHidden: false
|
|
192
|
+
});
|
|
193
|
+
// Get container-related files
|
|
194
|
+
const containerFiles = [
|
|
195
|
+
...projectStructure.dockerFiles,
|
|
196
|
+
...projectStructure.kubernetesFiles
|
|
197
|
+
];
|
|
198
|
+
let containerAnalysis = '';
|
|
199
|
+
if (containerFiles.length > 0) {
|
|
200
|
+
containerAnalysis = `Found ${containerFiles.length} container-related files:\n\n`;
|
|
201
|
+
containerFiles.forEach(file => {
|
|
202
|
+
containerAnalysis += `### ${file.filename}\n`;
|
|
203
|
+
containerAnalysis += `- **Path**: ${file.relativePath}\n`;
|
|
204
|
+
containerAnalysis += `- **Type**: ${file.type}\n`;
|
|
205
|
+
containerAnalysis += `- **Size**: ${file.size} bytes\n`;
|
|
206
|
+
if (file.content && file.content !== '[Binary or unreadable file]') {
|
|
207
|
+
containerAnalysis += `- **Content**:\n\`\`\`\n${file.content.substring(0, 1000)}${file.content.length > 1000 ? '...' : ''}\n\`\`\`\n\n`;
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
containerAnalysis += `- **Content**: Binary or unreadable\n\n`;
|
|
211
|
+
}
|
|
212
|
+
});
|
|
213
|
+
}
|
|
214
|
+
else {
|
|
215
|
+
containerAnalysis = 'No containerization files found in the project.\n\n';
|
|
216
|
+
}
|
|
110
217
|
const detectionPrompt = `
|
|
111
218
|
# Containerization Detection and Analysis
|
|
112
219
|
|
|
113
|
-
|
|
114
|
-
|
|
115
|
-
## File Discovery Instructions
|
|
116
|
-
|
|
117
|
-
${containerFileDiscoveryPrompt.prompt}
|
|
220
|
+
## Container File Analysis Results
|
|
118
221
|
|
|
119
|
-
|
|
120
|
-
|
|
121
|
-
${containerFileDiscoveryPrompt.instructions}
|
|
222
|
+
${containerAnalysis}
|
|
122
223
|
|
|
123
224
|
## Analysis Requirements
|
|
124
225
|
|
|
@@ -177,25 +278,37 @@ const result = await detectContainerization(projectPath);
|
|
|
177
278
|
/**
|
|
178
279
|
* Determine environment requirements from ADRs
|
|
179
280
|
*/
|
|
180
|
-
export async function determineEnvironmentRequirements(adrDirectory = 'docs/adrs') {
|
|
281
|
+
export async function determineEnvironmentRequirements(adrDirectory = 'docs/adrs', projectPath = process.cwd()) {
|
|
181
282
|
try {
|
|
182
|
-
const {
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
283
|
+
const { discoverAdrsInDirectory } = await import('./adr-discovery.js');
|
|
284
|
+
const path = await import('path');
|
|
285
|
+
// Use absolute path for ADR directory
|
|
286
|
+
const absoluteAdrPath = path.isAbsolute(adrDirectory)
|
|
287
|
+
? adrDirectory
|
|
288
|
+
: path.resolve(projectPath, adrDirectory);
|
|
289
|
+
// Use actual ADR discovery
|
|
290
|
+
const discoveryResult = await discoverAdrsInDirectory(absoluteAdrPath, true, projectPath);
|
|
291
|
+
let adrAnalysis = '';
|
|
292
|
+
if (discoveryResult.adrs.length > 0) {
|
|
293
|
+
adrAnalysis = `Found ${discoveryResult.adrs.length} ADRs to analyze for environment requirements:\n\n`;
|
|
294
|
+
discoveryResult.adrs.forEach(adr => {
|
|
295
|
+
adrAnalysis += `### ${adr.title}\n`;
|
|
296
|
+
adrAnalysis += `- **File**: ${adr.filename}\n`;
|
|
297
|
+
adrAnalysis += `- **Status**: ${adr.status}\n`;
|
|
298
|
+
adrAnalysis += `- **Context**: ${adr.context}\n`;
|
|
299
|
+
adrAnalysis += `- **Decision**: ${adr.decision}\n`;
|
|
300
|
+
adrAnalysis += `- **Consequences**: ${adr.consequences}\n\n`;
|
|
301
|
+
});
|
|
302
|
+
}
|
|
303
|
+
else {
|
|
304
|
+
adrAnalysis = `No ADRs found in ${absoluteAdrPath}. Cannot determine environment requirements from ADRs.\n\n`;
|
|
305
|
+
}
|
|
187
306
|
const requirementsPrompt = `
|
|
188
307
|
# Environment Requirements Analysis
|
|
189
308
|
|
|
190
|
-
|
|
191
|
-
|
|
192
|
-
## File Discovery Instructions
|
|
309
|
+
## ADR Analysis Results
|
|
193
310
|
|
|
194
|
-
${
|
|
195
|
-
|
|
196
|
-
## Implementation Steps
|
|
197
|
-
|
|
198
|
-
${adrFileDiscoveryPrompt.instructions}
|
|
311
|
+
${adrAnalysis}
|
|
199
312
|
|
|
200
313
|
## Requirements Analysis
|
|
201
314
|
|
|
@@ -314,29 +427,5 @@ const result = await assessEnvironmentCompliance(environment, requirements, stan
|
|
|
314
427
|
* Find environment-related files in the project
|
|
315
428
|
* Returns mock data for prompt-driven architecture
|
|
316
429
|
*/
|
|
317
|
-
async function findEnvironmentFiles(projectPath) {
|
|
318
|
-
// Return mock environment files for prompt-driven architecture
|
|
319
|
-
// The actual file discovery will be handled by AI agents through prompts
|
|
320
|
-
return [
|
|
321
|
-
{
|
|
322
|
-
filename: 'Dockerfile',
|
|
323
|
-
content: '',
|
|
324
|
-
path: `${projectPath}/Dockerfile`,
|
|
325
|
-
type: 'dockerfile',
|
|
326
|
-
},
|
|
327
|
-
{
|
|
328
|
-
filename: 'docker-compose.yml',
|
|
329
|
-
content: '',
|
|
330
|
-
path: `${projectPath}/docker-compose.yml`,
|
|
331
|
-
type: 'compose',
|
|
332
|
-
},
|
|
333
|
-
{
|
|
334
|
-
filename: '.env',
|
|
335
|
-
content: '',
|
|
336
|
-
path: `${projectPath}/.env`,
|
|
337
|
-
type: 'config',
|
|
338
|
-
},
|
|
339
|
-
];
|
|
340
|
-
}
|
|
341
430
|
// Removed unused function determineFileType
|
|
342
431
|
//# sourceMappingURL=environment-analysis.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"environment-analysis.js","sourceRoot":"","sources":["../../../src/utils/environment-analysis.ts"],"names":[],"mappings":"AAAA;;;GAGG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"environment-analysis.js","sourceRoot":"","sources":["../../../src/utils/environment-analysis.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../../src/utils/file-system.ts"],"names":[],"mappings":"AAAA
|
|
1
|
+
{"version":3,"file":"file-system.d.ts","sourceRoot":"","sources":["../../../src/utils/file-system.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAMH,MAAM,WAAW,QAAQ;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,gBAAgB;IAC/B,QAAQ,EAAE,MAAM,CAAC;IACjB,KAAK,EAAE,QAAQ,EAAE,CAAC;IAClB,WAAW,EAAE,MAAM,EAAE,CAAC;IACtB,UAAU,EAAE,MAAM,CAAC;IACnB,gBAAgB,EAAE,MAAM,CAAC;CAC1B;AAED,MAAM,WAAW,qBAAqB;IACpC,MAAM,EAAE,MAAM,CAAC;IACf,YAAY,EAAE,MAAM,CAAC;IACrB,OAAO,EAAE;QACP,WAAW,EAAE,MAAM,CAAC;QACpB,mBAAmB,EAAE,MAAM,CAAC;QAC5B,YAAY,EAAE,MAAM,EAAE,CAAC;KACxB,CAAC;CACH;AAED;;GAEG;AACH,wBAAsB,uBAAuB,CAAC,WAAW,EAAE,MAAM,GAAG,OAAO,CAAC,qBAAqB,CAAC,CA4IjG;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CA0HvH;AAED;;GAEG;AACH,wBAAsB,SAAS,CAC7B,WAAW,EAAE,MAAM,EACnB,QAAQ,EAAE,MAAM,EAAE,EAClB,OAAO,GAAE;IAAE,cAAc,CAAC,EAAE,OAAO,CAAA;CAAO,GACzC,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAyEjE;AAED;;GAEG;AACH,wBAAsB,UAAU,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAsJlH;AAED;;GAEG;AACH,wBAAsB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAuKtH;AAED;;GAEG;AACH,wBAAsB,SAAS,CAAC,QAAQ,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC;IAAE,MAAM,EAAE,MAAM,CAAC;IAAC,YAAY,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,GAAG,CAAA;CAAE,CAAC,CAqMlI;AAED;;GAEG;AACH,eAAO,MAAM,aAAa;;;;;;;;;;;;;CAmChB,CAAC"}
|