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.
Files changed (42) 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/dist/src/tools/deployment-guidance-tool.d.ts +19 -1
  7. package/dist/src/tools/deployment-guidance-tool.d.ts.map +1 -1
  8. package/dist/src/tools/deployment-guidance-tool.js +9 -4
  9. package/dist/src/tools/deployment-guidance-tool.js.map +1 -1
  10. package/package.json +1 -2
  11. package/dist/src/utils/dag-executor.d.ts +0 -106
  12. package/dist/src/utils/dag-executor.d.ts.map +0 -1
  13. package/dist/src/utils/dag-executor.js +0 -453
  14. package/dist/src/utils/dag-executor.js.map +0 -1
  15. package/dist/src/utils/deployment-task-integration.d.ts +0 -260
  16. package/dist/src/utils/deployment-task-integration.d.ts.map +0 -1
  17. package/dist/src/utils/deployment-task-integration.js +0 -393
  18. package/dist/src/utils/deployment-task-integration.js.map +0 -1
  19. package/dist/src/utils/dynamic-deployment-intelligence.d.ts +0 -117
  20. package/dist/src/utils/dynamic-deployment-intelligence.d.ts.map +0 -1
  21. package/dist/src/utils/dynamic-deployment-intelligence.js +0 -445
  22. package/dist/src/utils/dynamic-deployment-intelligence.js.map +0 -1
  23. package/dist/src/utils/pattern-contribution-helper.d.ts +0 -60
  24. package/dist/src/utils/pattern-contribution-helper.d.ts.map +0 -1
  25. package/dist/src/utils/pattern-contribution-helper.js +0 -308
  26. package/dist/src/utils/pattern-contribution-helper.js.map +0 -1
  27. package/dist/src/utils/pattern-loader.d.ts +0 -183
  28. package/dist/src/utils/pattern-loader.d.ts.map +0 -1
  29. package/dist/src/utils/pattern-loader.js +0 -198
  30. package/dist/src/utils/pattern-loader.js.map +0 -1
  31. package/dist/src/utils/pattern-to-dag-converter.d.ts +0 -62
  32. package/dist/src/utils/pattern-to-dag-converter.d.ts.map +0 -1
  33. package/dist/src/utils/pattern-to-dag-converter.js +0 -265
  34. package/dist/src/utils/pattern-to-dag-converter.js.map +0 -1
  35. package/dist/src/utils/resource-extractor.d.ts +0 -57
  36. package/dist/src/utils/resource-extractor.d.ts.map +0 -1
  37. package/dist/src/utils/resource-extractor.js +0 -323
  38. package/dist/src/utils/resource-extractor.js.map +0 -1
  39. package/dist/src/utils/system-card-manager.d.ts +0 -194
  40. package/dist/src/utils/system-card-manager.d.ts.map +0 -1
  41. package/dist/src/utils/system-card-manager.js +0 -336
  42. package/dist/src/utils/system-card-manager.js.map +0 -1
@@ -1,336 +0,0 @@
1
- import { promises as fs } from 'fs';
2
- import * as path from 'path';
3
- import * as yaml from 'js-yaml';
4
- import { EnhancedLogger } from './enhanced-logging.js';
5
- /**
6
- * Manages SystemCard creation, updates, and persistence
7
- */
8
- export class SystemCardManager {
9
- systemCardPath;
10
- logger;
11
- currentCard = null;
12
- constructor(projectPath) {
13
- this.systemCardPath = path.join(projectPath, 'systemcard.yaml');
14
- this.logger = new EnhancedLogger();
15
- }
16
- /**
17
- * Initialize a new SystemCard
18
- */
19
- async initialize(options) {
20
- try {
21
- this.currentCard = {
22
- version: '1.0',
23
- systemId: options.systemId,
24
- created: options.created,
25
- lastUpdated: options.created,
26
- platform: options.platform,
27
- bootstrapContext: options.bootstrapContext,
28
- resources: {},
29
- cleanup: {
30
- strategy: 'label-based',
31
- labelSelector: {
32
- 'managed-by': 'mcp-adr-server',
33
- 'bootstrap-id': options.bootstrapContext.bootstrapId,
34
- },
35
- phases: [],
36
- },
37
- ...(options.metadata && { metadata: options.metadata }),
38
- };
39
- await this.save();
40
- this.logger.info(`SystemCard initialized: ${this.systemCardPath}`, 'SystemCardManager');
41
- }
42
- catch (error) {
43
- this.logger.error('Failed to initialize SystemCard', 'SystemCardManager', error);
44
- throw error;
45
- }
46
- }
47
- /**
48
- * Load existing SystemCard from disk
49
- */
50
- async load() {
51
- try {
52
- const content = await fs.readFile(this.systemCardPath, 'utf-8');
53
- this.currentCard = yaml.load(content);
54
- this.logger.info('SystemCard loaded successfully', 'SystemCardManager');
55
- return this.currentCard;
56
- }
57
- catch (error) {
58
- if (error.code === 'ENOENT') {
59
- this.logger.warn('SystemCard not found', 'SystemCardManager');
60
- return null;
61
- }
62
- this.logger.error('Failed to load SystemCard', 'SystemCardManager', error);
63
- throw error;
64
- }
65
- }
66
- /**
67
- * Save current SystemCard to disk
68
- */
69
- async save() {
70
- if (!this.currentCard) {
71
- throw new Error('No SystemCard initialized. Call initialize() first.');
72
- }
73
- try {
74
- this.currentCard.lastUpdated = new Date().toISOString();
75
- const yamlContent = yaml.dump(this.currentCard, {
76
- indent: 2,
77
- lineWidth: -1,
78
- noRefs: true,
79
- });
80
- await fs.writeFile(this.systemCardPath, yamlContent, 'utf-8');
81
- this.logger.info('SystemCard saved successfully', 'SystemCardManager');
82
- }
83
- catch (error) {
84
- this.logger.error('Failed to save SystemCard', 'SystemCardManager', error);
85
- throw error;
86
- }
87
- }
88
- /**
89
- * Add resources to the SystemCard
90
- */
91
- async addResources(resources, context) {
92
- if (!this.currentCard) {
93
- throw new Error('No SystemCard loaded. Call load() or initialize() first.');
94
- }
95
- try {
96
- for (const resource of resources) {
97
- // Add phase/task context if provided
98
- if (context?.phase) {
99
- resource.createdByPhase = context.phase;
100
- }
101
- if (context?.taskId && !resource.createdByTask) {
102
- resource.createdByTask = context.taskId;
103
- }
104
- // Categorize by type
105
- const category = this.getResourceCategory(resource.type);
106
- if (!this.currentCard.resources[category]) {
107
- this.currentCard.resources[category] = [];
108
- }
109
- // Check for duplicates
110
- const exists = this.currentCard.resources[category].some(r => r.name === resource.name && r.namespace === resource.namespace);
111
- if (!exists) {
112
- this.currentCard.resources[category].push(resource);
113
- this.logger.info(`Added resource: ${resource.type}/${resource.name}`, 'SystemCardManager');
114
- }
115
- }
116
- await this.save();
117
- }
118
- catch (error) {
119
- this.logger.error('Failed to add resources', 'SystemCardManager', error);
120
- throw error;
121
- }
122
- }
123
- /**
124
- * Remove a resource from the SystemCard
125
- */
126
- async removeResource(type, name, namespace) {
127
- if (!this.currentCard) {
128
- throw new Error('No SystemCard loaded.');
129
- }
130
- try {
131
- const category = this.getResourceCategory(type);
132
- const resources = this.currentCard.resources[category];
133
- if (resources) {
134
- const index = resources.findIndex(r => r.name === name && (namespace ? r.namespace === namespace : true));
135
- if (index !== -1) {
136
- resources.splice(index, 1);
137
- this.logger.info(`Removed resource: ${type}/${name}`, 'SystemCardManager');
138
- await this.save();
139
- }
140
- }
141
- }
142
- catch (error) {
143
- this.logger.error('Failed to remove resource', 'SystemCardManager', error);
144
- throw error;
145
- }
146
- }
147
- /**
148
- * Generate cleanup phases from current resources
149
- * Resources are ordered in reverse of typical deployment order
150
- */
151
- async generateCleanupPhases() {
152
- if (!this.currentCard) {
153
- throw new Error('No SystemCard loaded.');
154
- }
155
- try {
156
- const phases = [];
157
- let order = 1;
158
- // Order of cleanup (reverse of typical deployment)
159
- const cleanupOrder = [
160
- 'ingresses',
161
- 'services',
162
- 'deployments',
163
- 'statefulsets',
164
- 'pods',
165
- 'configmaps',
166
- 'secrets',
167
- 'persistentvolumeclaims',
168
- 'namespaces',
169
- 'custom',
170
- ];
171
- for (const category of cleanupOrder) {
172
- const resources = this.currentCard.resources[category];
173
- if (resources && resources.length > 0) {
174
- const phase = {
175
- order: order++,
176
- name: `Delete ${category}`,
177
- description: `Remove all ${category} created during bootstrap`,
178
- commands: resources.map(r => ({
179
- description: `Delete ${r.type} ${r.name}`,
180
- command: r.cleanupCommand,
181
- expectedExitCode: 0,
182
- continueOnError: false,
183
- })),
184
- canParallelize: true,
185
- estimatedDuration: `${resources.length * 2}-${resources.length * 5} seconds`,
186
- };
187
- phases.push(phase);
188
- }
189
- }
190
- // Update SystemCard with generated cleanup phases
191
- this.currentCard.cleanup.phases = phases;
192
- await this.save();
193
- this.logger.info(`Generated ${phases.length} cleanup phases`, 'SystemCardManager');
194
- return phases;
195
- }
196
- catch (error) {
197
- this.logger.error('Failed to generate cleanup phases', 'SystemCardManager', error);
198
- throw error;
199
- }
200
- }
201
- /**
202
- * Create a state snapshot for rollback capability
203
- */
204
- async createSnapshot(beforeAction) {
205
- if (!this.currentCard) {
206
- throw new Error('No SystemCard loaded.');
207
- }
208
- try {
209
- const resourceCount = Object.values(this.currentCard.resources)
210
- .filter(arr => Array.isArray(arr))
211
- .reduce((sum, arr) => sum + arr.length, 0);
212
- const checksum = this.calculateChecksum(this.currentCard);
213
- const snapshot = {
214
- timestamp: new Date().toISOString(),
215
- beforeAction,
216
- resourceCount,
217
- checksum,
218
- };
219
- if (!this.currentCard.snapshots) {
220
- this.currentCard.snapshots = [];
221
- }
222
- this.currentCard.snapshots.push(snapshot);
223
- await this.save();
224
- this.logger.info(`Snapshot created: ${beforeAction}`, 'SystemCardManager');
225
- return snapshot;
226
- }
227
- catch (error) {
228
- this.logger.error('Failed to create snapshot', 'SystemCardManager', error);
229
- throw error;
230
- }
231
- }
232
- /**
233
- * Get all resources of a specific type
234
- */
235
- getResourcesByType(type) {
236
- if (!this.currentCard) {
237
- return [];
238
- }
239
- const category = this.getResourceCategory(type);
240
- return this.currentCard.resources[category] || [];
241
- }
242
- /**
243
- * Get all resources created by a specific task
244
- */
245
- getResourcesByTask(taskId) {
246
- if (!this.currentCard) {
247
- return [];
248
- }
249
- const allResources = [];
250
- for (const category of Object.keys(this.currentCard.resources)) {
251
- const resources = this.currentCard.resources[category];
252
- if (resources) {
253
- allResources.push(...resources.filter(r => r.createdByTask === taskId));
254
- }
255
- }
256
- return allResources;
257
- }
258
- /**
259
- * Get total count of all resources
260
- */
261
- getResourceCount() {
262
- if (!this.currentCard) {
263
- return 0;
264
- }
265
- return Object.values(this.currentCard.resources)
266
- .filter(arr => Array.isArray(arr))
267
- .reduce((sum, arr) => sum + arr.length, 0);
268
- }
269
- /**
270
- * Get current SystemCard
271
- */
272
- getCurrentCard() {
273
- return this.currentCard;
274
- }
275
- /**
276
- * Check if SystemCard exists on disk
277
- */
278
- async exists() {
279
- try {
280
- await fs.access(this.systemCardPath);
281
- return true;
282
- }
283
- catch {
284
- return false;
285
- }
286
- }
287
- /**
288
- * Delete SystemCard file from disk
289
- */
290
- async delete() {
291
- try {
292
- await fs.unlink(this.systemCardPath);
293
- this.currentCard = null;
294
- this.logger.info('SystemCard deleted', 'SystemCardManager');
295
- }
296
- catch (error) {
297
- if (error.code !== 'ENOENT') {
298
- this.logger.error('Failed to delete SystemCard', 'SystemCardManager', error);
299
- throw error;
300
- }
301
- }
302
- }
303
- /**
304
- * Map resource type to storage category
305
- */
306
- getResourceCategory(type) {
307
- const typeMap = {
308
- namespace: 'namespaces',
309
- deployment: 'deployments',
310
- service: 'services',
311
- configmap: 'configmaps',
312
- secret: 'secrets',
313
- ingress: 'ingresses',
314
- statefulset: 'statefulsets',
315
- pod: 'pods',
316
- persistentvolumeclaim: 'persistentvolumeclaims',
317
- custom: 'custom',
318
- };
319
- return typeMap[type] || 'custom';
320
- }
321
- /**
322
- * Calculate checksum for state verification
323
- */
324
- calculateChecksum(card) {
325
- const contentString = JSON.stringify(card.resources);
326
- // Simple hash function (in production, use crypto.createHash)
327
- let hash = 0;
328
- for (let i = 0; i < contentString.length; i++) {
329
- const char = contentString.charCodeAt(i);
330
- hash = (hash << 5) - hash + char;
331
- hash = hash & hash; // Convert to 32-bit integer
332
- }
333
- return hash.toString(16);
334
- }
335
- }
336
- //# sourceMappingURL=system-card-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"system-card-manager.js","sourceRoot":"","sources":["../../../src/utils/system-card-manager.ts"],"names":[],"mappings":"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"}