mcp-adr-analysis-server 2.7.24 → 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.
Files changed (38) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/src/tools/bootstrap-validation-loop-tool.d.ts +0 -178
  3. package/dist/src/tools/bootstrap-validation-loop-tool.d.ts.map +1 -1
  4. package/dist/src/tools/bootstrap-validation-loop-tool.js +0 -1580
  5. package/dist/src/tools/bootstrap-validation-loop-tool.js.map +1 -1
  6. package/package.json +1 -2
  7. package/dist/src/utils/dag-executor.d.ts +0 -106
  8. package/dist/src/utils/dag-executor.d.ts.map +0 -1
  9. package/dist/src/utils/dag-executor.js +0 -453
  10. package/dist/src/utils/dag-executor.js.map +0 -1
  11. package/dist/src/utils/deployment-task-integration.d.ts +0 -260
  12. package/dist/src/utils/deployment-task-integration.d.ts.map +0 -1
  13. package/dist/src/utils/deployment-task-integration.js +0 -393
  14. package/dist/src/utils/deployment-task-integration.js.map +0 -1
  15. package/dist/src/utils/dynamic-deployment-intelligence.d.ts +0 -117
  16. package/dist/src/utils/dynamic-deployment-intelligence.d.ts.map +0 -1
  17. package/dist/src/utils/dynamic-deployment-intelligence.js +0 -445
  18. package/dist/src/utils/dynamic-deployment-intelligence.js.map +0 -1
  19. package/dist/src/utils/pattern-contribution-helper.d.ts +0 -60
  20. package/dist/src/utils/pattern-contribution-helper.d.ts.map +0 -1
  21. package/dist/src/utils/pattern-contribution-helper.js +0 -308
  22. package/dist/src/utils/pattern-contribution-helper.js.map +0 -1
  23. package/dist/src/utils/pattern-loader.d.ts +0 -183
  24. package/dist/src/utils/pattern-loader.d.ts.map +0 -1
  25. package/dist/src/utils/pattern-loader.js +0 -198
  26. package/dist/src/utils/pattern-loader.js.map +0 -1
  27. package/dist/src/utils/pattern-to-dag-converter.d.ts +0 -62
  28. package/dist/src/utils/pattern-to-dag-converter.d.ts.map +0 -1
  29. package/dist/src/utils/pattern-to-dag-converter.js +0 -265
  30. package/dist/src/utils/pattern-to-dag-converter.js.map +0 -1
  31. package/dist/src/utils/resource-extractor.d.ts +0 -57
  32. package/dist/src/utils/resource-extractor.d.ts.map +0 -1
  33. package/dist/src/utils/resource-extractor.js +0 -323
  34. package/dist/src/utils/resource-extractor.js.map +0 -1
  35. package/dist/src/utils/system-card-manager.d.ts +0 -194
  36. package/dist/src/utils/system-card-manager.d.ts.map +0 -1
  37. package/dist/src/utils/system-card-manager.js +0 -336
  38. package/dist/src/utils/system-card-manager.js.map +0 -1
@@ -1,323 +0,0 @@
1
- import { EnhancedLogger } from './enhanced-logging.js';
2
- /**
3
- * Extracts resource information from command outputs
4
- * Supports kubectl, oc, docker, and other infrastructure commands
5
- */
6
- export class ResourceExtractor {
7
- logger;
8
- patterns;
9
- constructor() {
10
- this.logger = new EnhancedLogger();
11
- this.patterns = this.initializePatterns();
12
- }
13
- /**
14
- * Extract resources from a command and its output
15
- */
16
- extract(command, stdout, stderr, taskId) {
17
- const resources = [];
18
- const warnings = [];
19
- let confidence = 0;
20
- try {
21
- // Find matching patterns for this command
22
- const matchingPatterns = this.patterns.filter(p => p.commandPattern.test(command));
23
- if (matchingPatterns.length === 0) {
24
- this.logger.debug(`No extraction patterns matched for command: ${command.slice(0, 50)}...`, 'ResourceExtractor');
25
- return { resources, confidence: 0, warnings };
26
- }
27
- // Try each matching pattern
28
- for (const pattern of matchingPatterns) {
29
- const outputMatches = stdout.match(pattern.outputPattern);
30
- if (outputMatches) {
31
- try {
32
- const resourceData = pattern.extractionFunction(outputMatches, command);
33
- // Build complete resource record
34
- const resource = {
35
- type: pattern.resourceType,
36
- name: resourceData.name || 'unknown',
37
- ...(resourceData.namespace && { namespace: resourceData.namespace }),
38
- ...(resourceData.uid && { uid: resourceData.uid }),
39
- labels: resourceData.labels || {
40
- 'managed-by': 'mcp-adr-server',
41
- 'extracted-from': taskId,
42
- },
43
- ...(resourceData.annotations && { annotations: resourceData.annotations }),
44
- ...(resourceData.metadata && { metadata: resourceData.metadata }),
45
- created: new Date().toISOString(),
46
- createdByTask: taskId,
47
- cleanupCommand: this.generateCleanupCommand(pattern.resourceType, resourceData, command),
48
- };
49
- resources.push(resource);
50
- confidence = Math.max(confidence, 0.8); // High confidence if pattern matched
51
- }
52
- catch (error) {
53
- warnings.push(`Failed to extract resource from pattern: ${error.message}`);
54
- }
55
- }
56
- }
57
- // Check stderr for warnings
58
- if (stderr && stderr.trim().length > 0) {
59
- warnings.push(`Command produced stderr: ${stderr.slice(0, 200)}`);
60
- confidence = Math.max(confidence * 0.8, 0.5); // Reduce confidence if stderr present
61
- }
62
- this.logger.info(`Extracted ${resources.length} resources from command output`, 'ResourceExtractor');
63
- }
64
- catch (error) {
65
- this.logger.error('Resource extraction failed', 'ResourceExtractor', error);
66
- warnings.push(`Extraction error: ${error.message}`);
67
- }
68
- return { resources, confidence, warnings };
69
- }
70
- /**
71
- * Initialize extraction patterns for different commands
72
- */
73
- initializePatterns() {
74
- return [
75
- // kubectl create namespace
76
- {
77
- resourceType: 'namespace',
78
- commandPattern: /kubectl\s+create\s+(namespace|ns)/,
79
- outputPattern: /namespace[/\s]+"?([a-z0-9-]+)"?\s+created/i,
80
- extractionFunction: (matches, command) => {
81
- const name = matches[1];
82
- return {
83
- name,
84
- metadata: { command },
85
- };
86
- },
87
- },
88
- // oc new-project
89
- {
90
- resourceType: 'namespace',
91
- commandPattern: /oc\s+new-project/,
92
- outputPattern: /Now using project "([^"]+)"/,
93
- extractionFunction: (matches, command) => {
94
- const name = matches[1];
95
- return {
96
- name,
97
- metadata: { command, platform: 'openshift' },
98
- };
99
- },
100
- },
101
- // kubectl create deployment
102
- {
103
- resourceType: 'deployment',
104
- commandPattern: /kubectl\s+create\s+deployment/,
105
- outputPattern: /deployment\.apps[/\s]+"?([a-z0-9-]+)"?\s+created/i,
106
- extractionFunction: (matches, command) => {
107
- const name = matches[1];
108
- const namespaceMatch = command.match(/-n\s+([a-z0-9-]+)|--namespace[=\s]+([a-z0-9-]+)/);
109
- const namespace = namespaceMatch ? (namespaceMatch[1] || namespaceMatch[2]) : 'default';
110
- return {
111
- name,
112
- namespace,
113
- metadata: { command },
114
- };
115
- },
116
- },
117
- // kubectl apply -f (generic)
118
- {
119
- resourceType: 'custom',
120
- commandPattern: /kubectl\s+apply\s+-f/,
121
- outputPattern: /([a-z]+)\.([a-z0-9./]+)[/\s]+"?([a-z0-9-]+)"?\s+(created|configured|unchanged)/gi,
122
- extractionFunction: (matches, command) => {
123
- const resourceKind = matches[1];
124
- const resourceName = matches[3];
125
- const namespaceMatch = command.match(/-n\s+([a-z0-9-]+)|--namespace[=\s]+([a-z0-9-]+)/);
126
- const namespace = namespaceMatch ? (namespaceMatch[1] || namespaceMatch[2]) : 'default';
127
- // Map kubectl resource kinds to our types
128
- const typeMap = {
129
- namespace: 'namespace',
130
- deployment: 'deployment',
131
- service: 'service',
132
- configmap: 'configmap',
133
- secret: 'secret',
134
- ingress: 'ingress',
135
- statefulset: 'statefulset',
136
- pod: 'pod',
137
- persistentvolumeclaim: 'persistentvolumeclaim',
138
- };
139
- return {
140
- name: resourceName,
141
- namespace,
142
- type: typeMap[resourceKind.toLowerCase()] || 'custom',
143
- metadata: { command, resourceKind },
144
- };
145
- },
146
- },
147
- // kubectl create service
148
- {
149
- resourceType: 'service',
150
- commandPattern: /kubectl\s+create\s+service/,
151
- outputPattern: /service[/\s]+"?([a-z0-9-]+)"?\s+created/i,
152
- extractionFunction: (matches, command) => {
153
- const name = matches[1];
154
- const namespaceMatch = command.match(/-n\s+([a-z0-9-]+)|--namespace[=\s]+([a-z0-9-]+)/);
155
- const namespace = namespaceMatch ? (namespaceMatch[1] || namespaceMatch[2]) : 'default';
156
- return {
157
- name,
158
- namespace,
159
- metadata: { command },
160
- };
161
- },
162
- },
163
- // kubectl create configmap
164
- {
165
- resourceType: 'configmap',
166
- commandPattern: /kubectl\s+create\s+configmap/,
167
- outputPattern: /configmap[/\s]+"?([a-z0-9-]+)"?\s+created/i,
168
- extractionFunction: (matches, command) => {
169
- const name = matches[1];
170
- const namespaceMatch = command.match(/-n\s+([a-z0-9-]+)|--namespace[=\s]+([a-z0-9-]+)/);
171
- const namespace = namespaceMatch ? (namespaceMatch[1] || namespaceMatch[2]) : 'default';
172
- return {
173
- name,
174
- namespace,
175
- metadata: { command },
176
- };
177
- },
178
- },
179
- // kubectl create secret
180
- {
181
- resourceType: 'secret',
182
- commandPattern: /kubectl\s+create\s+secret/,
183
- outputPattern: /secret[/\s]+"?([a-z0-9-]+)"?\s+created/i,
184
- extractionFunction: (matches, command) => {
185
- const name = matches[1];
186
- const namespaceMatch = command.match(/-n\s+([a-z0-9-]+)|--namespace[=\s]+([a-z0-9-]+)/);
187
- const namespace = namespaceMatch ? (namespaceMatch[1] || namespaceMatch[2]) : 'default';
188
- return {
189
- name,
190
- namespace,
191
- metadata: { command },
192
- };
193
- },
194
- },
195
- // helm install
196
- {
197
- resourceType: 'custom',
198
- commandPattern: /helm\s+install/,
199
- outputPattern: /NAME:\s+([a-z0-9-]+)/i,
200
- extractionFunction: (matches, command) => {
201
- const releaseName = matches[1];
202
- const namespaceMatch = command.match(/-n\s+([a-z0-9-]+)|--namespace[=\s]+([a-z0-9-]+)/);
203
- const namespace = namespaceMatch ? (namespaceMatch[1] || namespaceMatch[2]) : 'default';
204
- return {
205
- name: releaseName,
206
- namespace,
207
- metadata: {
208
- command,
209
- type: 'helm-release',
210
- },
211
- };
212
- },
213
- },
214
- // docker run
215
- {
216
- resourceType: 'pod',
217
- commandPattern: /docker\s+run/,
218
- outputPattern: /([a-f0-9]{12,64})/,
219
- extractionFunction: (matches, command) => {
220
- const containerId = matches[1];
221
- const nameMatch = command.match(/--name[=\s]+([a-z0-9-]+)/);
222
- const name = nameMatch ? nameMatch[1] : containerId.slice(0, 12);
223
- return {
224
- name,
225
- uid: containerId,
226
- metadata: {
227
- command,
228
- platform: 'docker',
229
- containerId,
230
- },
231
- };
232
- },
233
- },
234
- // docker-compose up
235
- {
236
- resourceType: 'custom',
237
- commandPattern: /docker-compose\s+up/,
238
- outputPattern: /Creating\s+([a-z0-9_-]+)\s+\.\.\.\s+done/gi,
239
- extractionFunction: (matches, command) => {
240
- const serviceName = matches[1];
241
- return {
242
- name: serviceName,
243
- metadata: {
244
- command,
245
- platform: 'docker-compose',
246
- type: 'compose-service',
247
- },
248
- };
249
- },
250
- },
251
- ];
252
- }
253
- /**
254
- * Generate cleanup command for a resource
255
- */
256
- generateCleanupCommand(type, resourceData, originalCommand) {
257
- const name = resourceData.name || 'unknown';
258
- const namespace = resourceData.namespace;
259
- // Detect platform from command
260
- const isOpenShift = originalCommand.includes('oc ');
261
- const isDocker = originalCommand.includes('docker ');
262
- const isDockerCompose = originalCommand.includes('docker-compose');
263
- const isHelm = originalCommand.includes('helm');
264
- if (isHelm && resourceData.metadata?.['type'] === 'helm-release') {
265
- return namespace ? `helm uninstall ${name} -n ${namespace}` : `helm uninstall ${name}`;
266
- }
267
- if (isDockerCompose && resourceData.metadata?.['type'] === 'compose-service') {
268
- return `docker-compose down`;
269
- }
270
- if (isDocker && resourceData.metadata?.['containerId']) {
271
- return `docker rm -f ${resourceData.metadata['containerId']}`;
272
- }
273
- // Kubernetes/OpenShift cleanup
274
- const cli = isOpenShift ? 'oc' : 'kubectl';
275
- const resourceTypeMap = {
276
- namespace: 'namespace',
277
- deployment: 'deployment',
278
- service: 'service',
279
- configmap: 'configmap',
280
- secret: 'secret',
281
- ingress: 'ingress',
282
- statefulset: 'statefulset',
283
- pod: 'pod',
284
- persistentvolumeclaim: 'pvc',
285
- custom: resourceData.metadata?.['resourceKind'] || 'resource',
286
- };
287
- const resourceType = resourceTypeMap[type];
288
- if (type === 'namespace') {
289
- return `${cli} delete namespace ${name}`;
290
- }
291
- return namespace
292
- ? `${cli} delete ${resourceType} ${name} -n ${namespace}`
293
- : `${cli} delete ${resourceType} ${name}`;
294
- }
295
- /**
296
- * Extract multiple resources from batch command output
297
- */
298
- extractBatch(commands) {
299
- const allResources = [];
300
- for (const cmd of commands) {
301
- const result = this.extract(cmd.command, cmd.stdout, cmd.stderr, cmd.taskId);
302
- allResources.push(...result.resources);
303
- if (result.warnings.length > 0) {
304
- this.logger.warn(`Resource extraction warnings: ${result.warnings.join(', ')}`, 'ResourceExtractor');
305
- }
306
- }
307
- return allResources;
308
- }
309
- /**
310
- * Add a custom extraction pattern
311
- */
312
- addPattern(pattern) {
313
- this.patterns.push(pattern);
314
- this.logger.info(`Added custom extraction pattern for ${pattern.resourceType}`, 'ResourceExtractor');
315
- }
316
- /**
317
- * Get all registered patterns
318
- */
319
- getPatterns() {
320
- return [...this.patterns];
321
- }
322
- }
323
- //# sourceMappingURL=resource-extractor.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"resource-extractor.js","sourceRoot":"","sources":["../../../src/utils/resource-extractor.ts"],"names":[],"mappings":"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"}
@@ -1,194 +0,0 @@
1
- /**
2
- * Platform information detected during bootstrap
3
- */
4
- export interface PlatformInfo {
5
- type: 'kubernetes' | 'openshift' | 'docker-compose' | 'systemd' | 'unknown';
6
- version?: string;
7
- detectionConfidence: number;
8
- namespace?: string;
9
- clusterInfo?: Record<string, any>;
10
- }
11
- /**
12
- * Bootstrap context references
13
- */
14
- export interface BootstrapContext {
15
- adrPath?: string;
16
- contextPath?: string;
17
- validatedPatternId?: string;
18
- bootstrapId: string;
19
- initiatedBy?: string;
20
- }
21
- /**
22
- * Individual resource record
23
- */
24
- export interface ResourceRecord {
25
- type: 'namespace' | 'deployment' | 'service' | 'configmap' | 'secret' | 'ingress' | 'statefulset' | 'pod' | 'persistentvolumeclaim' | 'custom';
26
- name: string;
27
- namespace?: string;
28
- uid?: string;
29
- labels?: Record<string, string>;
30
- annotations?: Record<string, string>;
31
- metadata?: Record<string, any>;
32
- created: string;
33
- createdByTask: string;
34
- createdByPhase?: string;
35
- cleanupCommand: string;
36
- cleanupOrder?: number;
37
- }
38
- /**
39
- * Cleanup strategy configuration
40
- */
41
- export interface CleanupStrategy {
42
- strategy: 'label-based' | 'explicit' | 'namespace-cascade';
43
- labelSelector?: Record<string, string>;
44
- dryRun?: boolean;
45
- phases: CleanupPhase[];
46
- }
47
- /**
48
- * Individual cleanup phase
49
- */
50
- export interface CleanupPhase {
51
- order: number;
52
- name: string;
53
- description?: string;
54
- commands: CleanupCommand[];
55
- canParallelize?: boolean;
56
- estimatedDuration?: string;
57
- }
58
- /**
59
- * Individual cleanup command
60
- */
61
- export interface CleanupCommand {
62
- description: string;
63
- command: string;
64
- expectedExitCode?: number;
65
- continueOnError?: boolean;
66
- verificationCommand?: string;
67
- }
68
- /**
69
- * State snapshot for rollback capability
70
- */
71
- export interface StateSnapshot {
72
- timestamp: string;
73
- beforeAction: string;
74
- resourceCount: number;
75
- checksum: string;
76
- }
77
- /**
78
- * Complete SystemCard structure
79
- */
80
- export interface SystemCard {
81
- version: string;
82
- systemId: string;
83
- created: string;
84
- lastUpdated?: string;
85
- platform: PlatformInfo;
86
- bootstrapContext: BootstrapContext;
87
- resources: {
88
- namespaces?: ResourceRecord[];
89
- deployments?: ResourceRecord[];
90
- services?: ResourceRecord[];
91
- configmaps?: ResourceRecord[];
92
- secrets?: ResourceRecord[];
93
- ingresses?: ResourceRecord[];
94
- statefulsets?: ResourceRecord[];
95
- pods?: ResourceRecord[];
96
- persistentvolumeclaims?: ResourceRecord[];
97
- custom?: ResourceRecord[];
98
- };
99
- cleanup: CleanupStrategy;
100
- snapshots?: StateSnapshot[];
101
- metadata?: {
102
- tags?: string[];
103
- description?: string;
104
- owner?: string;
105
- };
106
- }
107
- /**
108
- * Options for SystemCard initialization
109
- */
110
- export interface SystemCardInitOptions {
111
- systemId: string;
112
- created: string;
113
- platform: PlatformInfo;
114
- bootstrapContext: BootstrapContext;
115
- metadata?: {
116
- tags?: string[];
117
- description?: string;
118
- owner?: string;
119
- };
120
- }
121
- /**
122
- * Manages SystemCard creation, updates, and persistence
123
- */
124
- export declare class SystemCardManager {
125
- private systemCardPath;
126
- private logger;
127
- private currentCard;
128
- constructor(projectPath: string);
129
- /**
130
- * Initialize a new SystemCard
131
- */
132
- initialize(options: SystemCardInitOptions): Promise<void>;
133
- /**
134
- * Load existing SystemCard from disk
135
- */
136
- load(): Promise<SystemCard | null>;
137
- /**
138
- * Save current SystemCard to disk
139
- */
140
- save(): Promise<void>;
141
- /**
142
- * Add resources to the SystemCard
143
- */
144
- addResources(resources: ResourceRecord[], context?: {
145
- phase?: string;
146
- taskId?: string;
147
- }): Promise<void>;
148
- /**
149
- * Remove a resource from the SystemCard
150
- */
151
- removeResource(type: string, name: string, namespace?: string): Promise<void>;
152
- /**
153
- * Generate cleanup phases from current resources
154
- * Resources are ordered in reverse of typical deployment order
155
- */
156
- generateCleanupPhases(): Promise<CleanupPhase[]>;
157
- /**
158
- * Create a state snapshot for rollback capability
159
- */
160
- createSnapshot(beforeAction: string): Promise<StateSnapshot>;
161
- /**
162
- * Get all resources of a specific type
163
- */
164
- getResourcesByType(type: string): ResourceRecord[];
165
- /**
166
- * Get all resources created by a specific task
167
- */
168
- getResourcesByTask(taskId: string): ResourceRecord[];
169
- /**
170
- * Get total count of all resources
171
- */
172
- getResourceCount(): number;
173
- /**
174
- * Get current SystemCard
175
- */
176
- getCurrentCard(): SystemCard | null;
177
- /**
178
- * Check if SystemCard exists on disk
179
- */
180
- exists(): Promise<boolean>;
181
- /**
182
- * Delete SystemCard file from disk
183
- */
184
- delete(): Promise<void>;
185
- /**
186
- * Map resource type to storage category
187
- */
188
- private getResourceCategory;
189
- /**
190
- * Calculate checksum for state verification
191
- */
192
- private calculateChecksum;
193
- }
194
- //# sourceMappingURL=system-card-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-card-manager.d.ts","sourceRoot":"","sources":["../../../src/utils/system-card-manager.ts"],"names":[],"mappings":"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"}