mcp-adr-analysis-server 2.0.21 → 2.0.24

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 (119) hide show
  1. package/dist/.tsbuildinfo +1 -1
  2. package/dist/src/index.d.ts +9 -0
  3. package/dist/src/index.d.ts.map +1 -1
  4. package/dist/src/index.js +1380 -781
  5. package/dist/src/index.js.map +1 -1
  6. package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
  7. package/dist/src/tools/adr-suggestion-tool.js +32 -30
  8. package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
  9. package/dist/src/tools/content-masking-tool.d.ts +4 -0
  10. package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
  11. package/dist/src/tools/content-masking-tool.js +531 -28
  12. package/dist/src/tools/content-masking-tool.js.map +1 -1
  13. package/dist/src/tools/deployment-readiness-tool.d.ts +8 -5
  14. package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
  15. package/dist/src/tools/deployment-readiness-tool.js +741 -79
  16. package/dist/src/tools/deployment-readiness-tool.js.map +1 -1
  17. package/dist/src/tools/environment-analysis-tool.d.ts +4 -0
  18. package/dist/src/tools/environment-analysis-tool.d.ts.map +1 -1
  19. package/dist/src/tools/environment-analysis-tool.js +568 -24
  20. package/dist/src/tools/environment-analysis-tool.js.map +1 -1
  21. package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
  22. package/dist/src/tools/mcp-planning-tool.js +298 -173
  23. package/dist/src/tools/mcp-planning-tool.js.map +1 -1
  24. package/dist/src/tools/memory-loading-tool.d.ts +60 -0
  25. package/dist/src/tools/memory-loading-tool.d.ts.map +1 -0
  26. package/dist/src/tools/memory-loading-tool.js +457 -0
  27. package/dist/src/tools/memory-loading-tool.js.map +1 -0
  28. package/dist/src/tools/smart-git-push-tool.d.ts +3 -0
  29. package/dist/src/tools/smart-git-push-tool.d.ts.map +1 -1
  30. package/dist/src/tools/smart-git-push-tool.js +177 -223
  31. package/dist/src/tools/smart-git-push-tool.js.map +1 -1
  32. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +20 -11
  33. package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
  34. package/dist/src/tools/troubleshoot-guided-workflow-tool.js +506 -22
  35. package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
  36. package/dist/src/types/enhanced-errors.d.ts +173 -0
  37. package/dist/src/types/enhanced-errors.d.ts.map +1 -0
  38. package/dist/src/types/enhanced-errors.js +668 -0
  39. package/dist/src/types/enhanced-errors.js.map +1 -0
  40. package/dist/src/types/knowledge-graph-schemas.d.ts +92 -0
  41. package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
  42. package/dist/src/types/knowledge-graph-schemas.js +45 -17
  43. package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
  44. package/dist/src/types/memory-entities.d.ts +7209 -0
  45. package/dist/src/types/memory-entities.d.ts.map +1 -0
  46. package/dist/src/types/memory-entities.js +395 -0
  47. package/dist/src/types/memory-entities.js.map +1 -0
  48. package/dist/src/types/todo-json-schemas.d.ts +7 -653
  49. package/dist/src/types/todo-json-schemas.d.ts.map +1 -1
  50. package/dist/src/types/todo-json-schemas.js +6 -110
  51. package/dist/src/types/todo-json-schemas.js.map +1 -1
  52. package/dist/src/utils/enhanced-logging.d.ts +195 -0
  53. package/dist/src/utils/enhanced-logging.d.ts.map +1 -0
  54. package/dist/src/utils/enhanced-logging.js +449 -0
  55. package/dist/src/utils/enhanced-logging.js.map +1 -0
  56. package/dist/src/utils/interactive-approval.d.ts +1 -1
  57. package/dist/src/utils/interactive-approval.d.ts.map +1 -1
  58. package/dist/src/utils/interactive-approval.js +20 -16
  59. package/dist/src/utils/interactive-approval.js.map +1 -1
  60. package/dist/src/utils/knowledge-graph-manager.d.ts +23 -1
  61. package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
  62. package/dist/src/utils/knowledge-graph-manager.js +297 -69
  63. package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
  64. package/dist/src/utils/memory-entity-manager.d.ts +134 -0
  65. package/dist/src/utils/memory-entity-manager.d.ts.map +1 -0
  66. package/dist/src/utils/memory-entity-manager.js +848 -0
  67. package/dist/src/utils/memory-entity-manager.js.map +1 -0
  68. package/dist/src/utils/memory-health-scoring.d.ts +125 -0
  69. package/dist/src/utils/memory-health-scoring.d.ts.map +1 -0
  70. package/dist/src/utils/memory-health-scoring.js +277 -0
  71. package/dist/src/utils/memory-health-scoring.js.map +1 -0
  72. package/dist/src/utils/memory-migration-manager.d.ts +93 -0
  73. package/dist/src/utils/memory-migration-manager.d.ts.map +1 -0
  74. package/dist/src/utils/memory-migration-manager.js +834 -0
  75. package/dist/src/utils/memory-migration-manager.js.map +1 -0
  76. package/dist/src/utils/memory-relationship-mapper.d.ts +87 -0
  77. package/dist/src/utils/memory-relationship-mapper.d.ts.map +1 -0
  78. package/dist/src/utils/memory-relationship-mapper.js +481 -0
  79. package/dist/src/utils/memory-relationship-mapper.js.map +1 -0
  80. package/dist/src/utils/memory-rollback-manager.d.ts +93 -0
  81. package/dist/src/utils/memory-rollback-manager.d.ts.map +1 -0
  82. package/dist/src/utils/memory-rollback-manager.js +542 -0
  83. package/dist/src/utils/memory-rollback-manager.js.map +1 -0
  84. package/dist/src/utils/memory-transformation.d.ts +59 -0
  85. package/dist/src/utils/memory-transformation.d.ts.map +1 -0
  86. package/dist/src/utils/memory-transformation.js +742 -0
  87. package/dist/src/utils/memory-transformation.js.map +1 -0
  88. package/dist/src/utils/prompt-execution.d.ts.map +1 -1
  89. package/dist/src/utils/prompt-execution.js +72 -51
  90. package/dist/src/utils/prompt-execution.js.map +1 -1
  91. package/dist/src/utils/todo-file-watcher.d.ts +11 -23
  92. package/dist/src/utils/todo-file-watcher.d.ts.map +1 -1
  93. package/dist/src/utils/todo-file-watcher.js +18 -156
  94. package/dist/src/utils/todo-file-watcher.js.map +1 -1
  95. package/package.json +22 -6
  96. package/dist/src/tools/smart-score-tool.d.ts +0 -173
  97. package/dist/src/tools/smart-score-tool.d.ts.map +0 -1
  98. package/dist/src/tools/smart-score-tool.js +0 -681
  99. package/dist/src/tools/smart-score-tool.js.map +0 -1
  100. package/dist/src/tools/todo-management-tool-v2.d.ts +0 -368
  101. package/dist/src/tools/todo-management-tool-v2.d.ts.map +0 -1
  102. package/dist/src/tools/todo-management-tool-v2.js +0 -922
  103. package/dist/src/tools/todo-management-tool-v2.js.map +0 -1
  104. package/dist/src/utils/project-health-scoring.d.ts +0 -177
  105. package/dist/src/utils/project-health-scoring.d.ts.map +0 -1
  106. package/dist/src/utils/project-health-scoring.js +0 -370
  107. package/dist/src/utils/project-health-scoring.js.map +0 -1
  108. package/dist/src/utils/todo-json-manager.d.ts +0 -71
  109. package/dist/src/utils/todo-json-manager.d.ts.map +0 -1
  110. package/dist/src/utils/todo-json-manager.js +0 -396
  111. package/dist/src/utils/todo-json-manager.js.map +0 -1
  112. package/dist/src/utils/todo-markdown-converter.d.ts +0 -16
  113. package/dist/src/utils/todo-markdown-converter.d.ts.map +0 -1
  114. package/dist/src/utils/todo-markdown-converter.js +0 -362
  115. package/dist/src/utils/todo-markdown-converter.js.map +0 -1
  116. package/dist/src/utils/todo-migration.d.ts +0 -47
  117. package/dist/src/utils/todo-migration.d.ts.map +0 -1
  118. package/dist/src/utils/todo-migration.js +0 -261
  119. package/dist/src/utils/todo-migration.js.map +0 -1
@@ -1,261 +0,0 @@
1
- /**
2
- * Migration Utility for JSON-First TODO System
3
- *
4
- * Helps users transition from markdown-based TODO.md files to the new
5
- * JSON-first system with backup and validation.
6
- */
7
- import * as fs from 'fs/promises';
8
- import path from 'path';
9
- import { TodoJsonManager } from './todo-json-manager.js';
10
- import { loadConfig } from './config.js';
11
- export class TodoMigrationUtility {
12
- todoManager;
13
- projectPath;
14
- todoMdPath;
15
- backupDir;
16
- constructor(projectPath) {
17
- const config = loadConfig();
18
- this.projectPath = projectPath || config.projectPath;
19
- this.todoManager = new TodoJsonManager(this.projectPath);
20
- this.todoMdPath = path.join(this.projectPath, 'TODO.md');
21
- this.backupDir = path.join(this.projectPath, '.mcp-adr-cache', 'migration-backups');
22
- }
23
- /**
24
- * Migrate existing TODO.md to JSON format
25
- */
26
- async migrateToJsonFormat(options = {}) {
27
- const result = {
28
- success: false,
29
- migratedTasks: 0,
30
- errors: [],
31
- warnings: [],
32
- summary: ''
33
- };
34
- try {
35
- // Check if TODO.md exists
36
- const todoMdExists = await this.fileExists(this.todoMdPath);
37
- if (!todoMdExists) {
38
- result.warnings.push('No TODO.md file found - creating fresh JSON structure');
39
- await this.todoManager.loadTodoData(); // Creates default structure
40
- result.success = true;
41
- result.summary = 'Created new JSON TODO structure (no existing TODO.md found)';
42
- return result;
43
- }
44
- // Check if JSON already exists
45
- const jsonExists = await this.fileExists(path.join(this.projectPath, '.mcp-adr-cache', 'todo-data.json'));
46
- if (jsonExists && !options.dryRun) {
47
- result.warnings.push('JSON TODO data already exists - this will merge with existing data');
48
- }
49
- // Create backup if requested
50
- if (options.backupOriginal && !options.dryRun) {
51
- await this.ensureBackupDirectory();
52
- const timestamp = new Date().toISOString().replace(/[:.]/g, '-');
53
- const backupPath = path.join(this.backupDir, `TODO-${timestamp}.md`);
54
- await fs.copyFile(this.todoMdPath, backupPath);
55
- result.backupPath = backupPath;
56
- }
57
- // Read existing TODO.md
58
- const todoMdContent = await fs.readFile(this.todoMdPath, 'utf-8');
59
- // Parse and validate markdown
60
- const { parseMarkdownToJson } = await import('./todo-markdown-converter.js');
61
- const parsedData = await parseMarkdownToJson(todoMdContent);
62
- result.migratedTasks = Object.keys(parsedData.tasks).length;
63
- if (options.dryRun) {
64
- result.summary = `Dry run: Would migrate ${result.migratedTasks} tasks to JSON format`;
65
- result.success = true;
66
- return result;
67
- }
68
- // Save to JSON backend
69
- await this.todoManager.saveTodoData(parsedData, false); // Don't sync back to markdown yet
70
- // Validate migration
71
- if (options.validateAfterMigration) {
72
- const validationResult = await this.validateMigration(parsedData);
73
- if (!validationResult.valid) {
74
- result.errors.push(...validationResult.errors);
75
- result.warnings.push(...validationResult.warnings);
76
- }
77
- }
78
- // Generate new markdown from JSON to ensure consistency
79
- if (options.preserveMarkdown) {
80
- await this.todoManager.convertToMarkdown();
81
- result.warnings.push('TODO.md has been regenerated from JSON data for consistency');
82
- }
83
- result.success = result.errors.length === 0;
84
- result.summary = `Successfully migrated ${result.migratedTasks} tasks to JSON format`;
85
- }
86
- catch (error) {
87
- result.errors.push(`Migration failed: ${error instanceof Error ? error.message : String(error)}`);
88
- result.summary = 'Migration failed - see errors for details';
89
- }
90
- return result;
91
- }
92
- /**
93
- * Validate migration results
94
- */
95
- async validateMigration(parsedData) {
96
- const validation = { valid: true, errors: [], warnings: [] };
97
- try {
98
- // Validate JSON structure
99
- const { TodoJsonDataSchema } = await import('../types/todo-json-schemas.js');
100
- TodoJsonDataSchema.parse(parsedData);
101
- // Check for orphaned dependencies
102
- const taskIds = Object.keys(parsedData.tasks);
103
- for (const [taskId, task] of Object.entries(parsedData.tasks)) {
104
- if (task.dependencies) {
105
- for (const depId of task.dependencies) {
106
- if (!taskIds.includes(depId)) {
107
- validation.warnings.push(`Task ${taskId} has dependency ${depId} which doesn't exist`);
108
- }
109
- }
110
- }
111
- }
112
- // Check section integrity
113
- const sectionTaskIds = parsedData.sections.flatMap((s) => s.tasks);
114
- const orphanedTasks = taskIds.filter(id => !sectionTaskIds.includes(id));
115
- if (orphanedTasks.length > 0) {
116
- validation.warnings.push(`${orphanedTasks.length} tasks are not assigned to any section`);
117
- }
118
- }
119
- catch (error) {
120
- validation.valid = false;
121
- validation.errors.push(`Validation failed: ${error instanceof Error ? error.message : String(error)}`);
122
- }
123
- return validation;
124
- }
125
- /**
126
- * Create a summary report of existing TODO.md
127
- */
128
- async generateMigrationReport() {
129
- try {
130
- const todoMdExists = await this.fileExists(this.todoMdPath);
131
- if (!todoMdExists) {
132
- return '# TODO Migration Report\n\nāŒ No TODO.md file found in project root.\n\n*Use `manage_todo_json` with `create_task` to start with the new JSON system.*';
133
- }
134
- const todoMdContent = await fs.readFile(this.todoMdPath, 'utf-8');
135
- const lines = todoMdContent.split('\n');
136
- // Basic analysis
137
- const taskLines = lines.filter(line => line.match(/^- \[(x| )\]/));
138
- const completedTasks = taskLines.filter(line => line.includes('[x]')).length;
139
- const pendingTasks = taskLines.filter(line => line.includes('[ ]')).length;
140
- const totalTasks = taskLines.length;
141
- // Analyze sections
142
- const sectionLines = lines.filter(line => line.startsWith('## '));
143
- const sections = sectionLines.map(line => line.replace('## ', '').trim());
144
- // Check for potential issues
145
- const issues = [];
146
- if (totalTasks === 0) {
147
- issues.push('No tasks found in TODO.md');
148
- }
149
- if (sections.length === 0) {
150
- issues.push('No sections found - tasks may be unorganized');
151
- }
152
- // Check for complex formatting that might be lost
153
- const hasNestedTasks = lines.some(line => line.match(/^ - \[(x| )\]/));
154
- const hasMetadata = lines.some(line => line.includes('@') || line.includes('šŸ“…'));
155
- if (hasNestedTasks) {
156
- issues.push('Nested tasks detected - these will be converted to subtasks');
157
- }
158
- if (hasMetadata) {
159
- issues.push('Task metadata detected (assignees, dates) - these will be preserved');
160
- }
161
- let report = '# TODO Migration Report\n\n';
162
- report += `## Current TODO.md Analysis\n\n`;
163
- report += `- **Total Tasks**: ${totalTasks}\n`;
164
- report += `- **Completed**: ${completedTasks}\n`;
165
- report += `- **Pending**: ${pendingTasks}\n`;
166
- report += `- **Sections**: ${sections.length}\n\n`;
167
- if (sections.length > 0) {
168
- report += `### Sections Found:\n`;
169
- sections.forEach(section => {
170
- report += `- ${section}\n`;
171
- });
172
- report += '\n';
173
- }
174
- if (issues.length > 0) {
175
- report += `### Migration Notes:\n`;
176
- issues.forEach(issue => {
177
- report += `- ${issue}\n`;
178
- });
179
- report += '\n';
180
- }
181
- report += `## Migration Options\n\n`;
182
- report += `### Recommended Command:\n`;
183
- report += '```\n';
184
- report += `manage_todo_json --operation=import_from_markdown --mergeStrategy=merge --backupExisting=true\n`;
185
- report += '```\n\n';
186
- report += `### Alternative: Start Fresh\n`;
187
- report += 'If you prefer to start with a clean JSON system and manually recreate important tasks:\n';
188
- report += '```\n';
189
- report += `manage_todo_json --operation=create_task --title="Your first task" --priority=high\n`;
190
- report += '```\n\n';
191
- report += `*Run this migration when ready to switch to the new JSON-first TODO system.*`;
192
- return report;
193
- }
194
- catch (error) {
195
- return `# TODO Migration Report\n\nāŒ Error analyzing TODO.md: ${error instanceof Error ? error.message : String(error)}`;
196
- }
197
- }
198
- /**
199
- * Generate a comparison between old and new systems
200
- */
201
- async generateFeatureComparison() {
202
- return `# TODO System Comparison
203
-
204
- ## Old System (Markdown-based)
205
- - āœ… Human-readable TODO.md file
206
- - āŒ Inconsistent LLM updates
207
- - āŒ Manual task status tracking
208
- - āŒ No automatic scoring integration
209
- - āŒ Limited metadata support
210
- - āŒ No dependency tracking
211
- - āŒ No automation features
212
-
213
- ## New System (JSON-first)
214
- - āœ… Human-readable TODO.md file (auto-generated)
215
- - āœ… Consistent LLM interactions with structured JSON
216
- - āœ… Automatic task status updates
217
- - āœ… Seamless scoring integration
218
- - āœ… Rich metadata (assignees, due dates, priorities, tags)
219
- - āœ… Full dependency tracking
220
- - āœ… Auto-completion rules
221
- - āœ… Knowledge graph integration
222
- - āœ… Versioning and changelog
223
- - āœ… Velocity tracking and analytics
224
- - āœ… Backup and recovery
225
-
226
- ## Migration Benefits
227
- 1. **Consistency**: No more broken markdown from LLM updates
228
- 2. **Automation**: Tasks automatically move between sections
229
- 3. **Intelligence**: Smart scoring and progress tracking
230
- 4. **Memory**: Full integration with knowledge graph
231
- 5. **Analytics**: Velocity tracking and recommendations
232
- 6. **Reliability**: Versioning and backup built-in
233
-
234
- ## Migration Process
235
- 1. **Backup**: Original TODO.md is preserved
236
- 2. **Parse**: Existing tasks are analyzed and converted
237
- 3. **Validate**: Migration integrity is checked
238
- 4. **Sync**: New TODO.md is generated from JSON
239
- 5. **Test**: Verify all features work correctly
240
-
241
- *The new system maintains backward compatibility while adding powerful new features.*`;
242
- }
243
- async fileExists(filePath) {
244
- try {
245
- await fs.access(filePath);
246
- return true;
247
- }
248
- catch {
249
- return false;
250
- }
251
- }
252
- async ensureBackupDirectory() {
253
- try {
254
- await fs.mkdir(this.backupDir, { recursive: true });
255
- }
256
- catch (error) {
257
- // Directory might already exist
258
- }
259
- }
260
- }
261
- //# sourceMappingURL=todo-migration.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"todo-migration.js","sourceRoot":"","sources":["../../../src/utils/todo-migration.ts"],"names":[],"mappings":"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"}