mcp-adr-analysis-server 2.0.21 ā 2.1.0
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/README.md +94 -839
- package/dist/.tsbuildinfo +1 -1
- package/dist/src/config/ai-config.d.ts.map +1 -1
- package/dist/src/config/ai-config.js +9 -9
- package/dist/src/config/ai-config.js.map +1 -1
- package/dist/src/index.d.ts +15 -0
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +1594 -837
- package/dist/src/index.js.map +1 -1
- package/dist/src/prompts/analysis-prompts.d.ts +4 -1
- package/dist/src/prompts/analysis-prompts.d.ts.map +1 -1
- package/dist/src/prompts/analysis-prompts.js +61 -30
- package/dist/src/prompts/analysis-prompts.js.map +1 -1
- package/dist/src/prompts/index.d.ts +17 -1
- package/dist/src/prompts/index.d.ts.map +1 -1
- package/dist/src/prompts/index.js +325 -1
- package/dist/src/prompts/index.js.map +1 -1
- package/dist/src/prompts/rule-generation-prompts.d.ts +5 -1
- package/dist/src/prompts/rule-generation-prompts.d.ts.map +1 -1
- package/dist/src/prompts/rule-generation-prompts.js +5 -1
- package/dist/src/prompts/rule-generation-prompts.js.map +1 -1
- package/dist/src/prompts/security-prompts.d.ts +6 -1
- package/dist/src/prompts/security-prompts.d.ts.map +1 -1
- package/dist/src/prompts/security-prompts.js +6 -1
- package/dist/src/prompts/security-prompts.js.map +1 -1
- package/dist/src/prompts/todo-prompts.d.ts +49 -0
- package/dist/src/prompts/todo-prompts.d.ts.map +1 -0
- package/dist/src/prompts/todo-prompts.js +824 -0
- package/dist/src/prompts/todo-prompts.js.map +1 -0
- package/dist/src/resources/index.d.ts.map +1 -1
- package/dist/src/resources/index.js +9 -7
- package/dist/src/resources/index.js.map +1 -1
- package/dist/src/tools/adr-bootstrap-validation-tool.d.ts +47 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.d.ts.map +1 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.js +979 -0
- package/dist/src/tools/adr-bootstrap-validation-tool.js.map +1 -0
- package/dist/src/tools/adr-suggestion-tool.d.ts +1 -0
- package/dist/src/tools/adr-suggestion-tool.d.ts.map +1 -1
- package/dist/src/tools/adr-suggestion-tool.js +330 -32
- package/dist/src/tools/adr-suggestion-tool.js.map +1 -1
- package/dist/src/tools/content-masking-tool.d.ts +5 -0
- package/dist/src/tools/content-masking-tool.d.ts.map +1 -1
- package/dist/src/tools/content-masking-tool.js +631 -28
- package/dist/src/tools/content-masking-tool.js.map +1 -1
- package/dist/src/tools/deployment-readiness-tool.d.ts +8 -5
- package/dist/src/tools/deployment-readiness-tool.d.ts.map +1 -1
- package/dist/src/tools/deployment-readiness-tool.js +1017 -93
- package/dist/src/tools/deployment-readiness-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 +568 -24
- package/dist/src/tools/environment-analysis-tool.js.map +1 -1
- package/dist/src/tools/interactive-adr-planning-tool.d.ts.map +1 -1
- package/dist/src/tools/interactive-adr-planning-tool.js +270 -108
- package/dist/src/tools/interactive-adr-planning-tool.js.map +1 -1
- package/dist/src/tools/mcp-planning-tool.d.ts.map +1 -1
- package/dist/src/tools/mcp-planning-tool.js +316 -183
- package/dist/src/tools/mcp-planning-tool.js.map +1 -1
- package/dist/src/tools/memory-loading-tool.d.ts +60 -0
- package/dist/src/tools/memory-loading-tool.d.ts.map +1 -0
- package/dist/src/tools/memory-loading-tool.js +457 -0
- package/dist/src/tools/memory-loading-tool.js.map +1 -0
- package/dist/src/tools/research-integration-tool.d.ts +4 -1
- package/dist/src/tools/research-integration-tool.d.ts.map +1 -1
- package/dist/src/tools/research-integration-tool.js +5 -1
- package/dist/src/tools/research-integration-tool.js.map +1 -1
- package/dist/src/tools/review-existing-adrs-tool.d.ts +19 -0
- package/dist/src/tools/review-existing-adrs-tool.d.ts.map +1 -0
- package/dist/src/tools/review-existing-adrs-tool.js +1204 -0
- package/dist/src/tools/review-existing-adrs-tool.js.map +1 -0
- package/dist/src/tools/rule-generation-tool.d.ts +2 -0
- package/dist/src/tools/rule-generation-tool.d.ts.map +1 -1
- package/dist/src/tools/rule-generation-tool.js +274 -33
- package/dist/src/tools/rule-generation-tool.js.map +1 -1
- package/dist/src/tools/smart-git-push-tool-v2.d.ts +4 -0
- package/dist/src/tools/smart-git-push-tool-v2.d.ts.map +1 -1
- package/dist/src/tools/smart-git-push-tool-v2.js +423 -229
- package/dist/src/tools/smart-git-push-tool-v2.js.map +1 -1
- package/dist/src/tools/smart-git-push-tool.d.ts +3 -0
- package/dist/src/tools/smart-git-push-tool.d.ts.map +1 -1
- package/dist/src/tools/smart-git-push-tool.js +241 -235
- package/dist/src/tools/smart-git-push-tool.js.map +1 -1
- package/dist/src/tools/tool-chain-orchestrator.d.ts +2 -2
- package/dist/src/tools/tool-chain-orchestrator.d.ts.map +1 -1
- package/dist/src/tools/tool-chain-orchestrator.js +152 -93
- package/dist/src/tools/tool-chain-orchestrator.js.map +1 -1
- package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts +22 -13
- package/dist/src/tools/troubleshoot-guided-workflow-tool.d.ts.map +1 -1
- package/dist/src/tools/troubleshoot-guided-workflow-tool.js +660 -28
- package/dist/src/tools/troubleshoot-guided-workflow-tool.js.map +1 -1
- package/dist/src/types/ape-framework.d.ts +93 -0
- package/dist/src/types/ape-framework.d.ts.map +1 -1
- package/dist/src/types/ape-framework.js +10 -10
- package/dist/src/types/ape-framework.js.map +1 -1
- package/dist/src/types/enhanced-errors.d.ts +173 -0
- package/dist/src/types/enhanced-errors.d.ts.map +1 -0
- package/dist/src/types/enhanced-errors.js +668 -0
- package/dist/src/types/enhanced-errors.js.map +1 -0
- package/dist/src/types/index.d.ts +129 -3
- package/dist/src/types/index.d.ts.map +1 -1
- package/dist/src/types/index.js +15 -0
- package/dist/src/types/index.js.map +1 -1
- package/dist/src/types/knowledge-generation.d.ts +78 -0
- package/dist/src/types/knowledge-generation.d.ts.map +1 -1
- package/dist/src/types/knowledge-generation.js +10 -6
- package/dist/src/types/knowledge-generation.js.map +1 -1
- package/dist/src/types/knowledge-graph-schemas.d.ts +92 -0
- package/dist/src/types/knowledge-graph-schemas.d.ts.map +1 -1
- package/dist/src/types/knowledge-graph-schemas.js +45 -17
- package/dist/src/types/knowledge-graph-schemas.js.map +1 -1
- package/dist/src/types/memory-entities.d.ts +7209 -0
- package/dist/src/types/memory-entities.d.ts.map +1 -0
- package/dist/src/types/memory-entities.js +395 -0
- package/dist/src/types/memory-entities.js.map +1 -0
- package/dist/src/types/reflexion-framework.d.ts +44 -0
- package/dist/src/types/reflexion-framework.d.ts.map +1 -1
- package/dist/src/types/reflexion-framework.js +7 -7
- package/dist/src/types/reflexion-framework.js.map +1 -1
- package/dist/src/types/todo-json-schemas.d.ts +7 -653
- package/dist/src/types/todo-json-schemas.d.ts.map +1 -1
- package/dist/src/types/todo-json-schemas.js +6 -110
- package/dist/src/types/todo-json-schemas.js.map +1 -1
- package/dist/src/types/tool-arguments.d.ts +224 -0
- package/dist/src/types/tool-arguments.d.ts.map +1 -0
- package/dist/src/types/tool-arguments.js +6 -0
- package/dist/src/types/tool-arguments.js.map +1 -0
- package/dist/src/utils/actual-file-operations.d.ts.map +1 -1
- package/dist/src/utils/actual-file-operations.js +25 -9
- package/dist/src/utils/actual-file-operations.js.map +1 -1
- package/dist/src/utils/adr-discovery.d.ts +33 -1
- package/dist/src/utils/adr-discovery.d.ts.map +1 -1
- package/dist/src/utils/adr-discovery.js +14 -9
- package/dist/src/utils/adr-discovery.js.map +1 -1
- package/dist/src/utils/adr-suggestions.d.ts +72 -0
- package/dist/src/utils/adr-suggestions.d.ts.map +1 -1
- package/dist/src/utils/adr-suggestions.js +6 -0
- package/dist/src/utils/adr-suggestions.js.map +1 -1
- package/dist/src/utils/cache.d.ts.map +1 -1
- package/dist/src/utils/cache.js +22 -19
- package/dist/src/utils/cache.js.map +1 -1
- package/dist/src/utils/chain-of-thought-template.d.ts +13 -1
- package/dist/src/utils/chain-of-thought-template.d.ts.map +1 -1
- package/dist/src/utils/chain-of-thought-template.js +31 -22
- package/dist/src/utils/chain-of-thought-template.js.map +1 -1
- package/dist/src/utils/config.d.ts.map +1 -1
- package/dist/src/utils/config.js +1 -0
- package/dist/src/utils/config.js.map +1 -1
- package/dist/src/utils/directory-compat.js +1 -1
- package/dist/src/utils/directory-compat.js.map +1 -1
- package/dist/src/utils/enhanced-logging.d.ts +195 -0
- package/dist/src/utils/enhanced-logging.d.ts.map +1 -0
- package/dist/src/utils/enhanced-logging.js +449 -0
- package/dist/src/utils/enhanced-logging.js.map +1 -0
- package/dist/src/utils/file-system.d.ts +182 -34
- package/dist/src/utils/file-system.d.ts.map +1 -1
- package/dist/src/utils/file-system.js +648 -774
- package/dist/src/utils/file-system.js.map +1 -1
- package/dist/src/utils/gitleaks-detector.d.ts +50 -0
- package/dist/src/utils/gitleaks-detector.d.ts.map +1 -0
- package/dist/src/utils/gitleaks-detector.js +334 -0
- package/dist/src/utils/gitleaks-detector.js.map +1 -0
- package/dist/src/utils/interactive-approval.d.ts +1 -1
- package/dist/src/utils/interactive-approval.d.ts.map +1 -1
- package/dist/src/utils/interactive-approval.js +22 -17
- package/dist/src/utils/interactive-approval.js.map +1 -1
- package/dist/src/utils/json-safe.d.ts.map +1 -1
- package/dist/src/utils/json-safe.js +9 -6
- package/dist/src/utils/json-safe.js.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.d.ts +37 -1
- package/dist/src/utils/knowledge-graph-manager.d.ts.map +1 -1
- package/dist/src/utils/knowledge-graph-manager.js +315 -70
- package/dist/src/utils/knowledge-graph-manager.js.map +1 -1
- package/dist/src/utils/location-filter.d.ts +35 -10
- package/dist/src/utils/location-filter.d.ts.map +1 -1
- package/dist/src/utils/location-filter.js +360 -94
- package/dist/src/utils/location-filter.js.map +1 -1
- package/dist/src/utils/mcp-response-validator.d.ts.map +1 -1
- package/dist/src/utils/mcp-response-validator.js +34 -19
- package/dist/src/utils/mcp-response-validator.js.map +1 -1
- package/dist/src/utils/memory-entity-manager.d.ts +134 -0
- package/dist/src/utils/memory-entity-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-entity-manager.js +851 -0
- package/dist/src/utils/memory-entity-manager.js.map +1 -0
- package/dist/src/utils/memory-health-scoring.d.ts +125 -0
- package/dist/src/utils/memory-health-scoring.d.ts.map +1 -0
- package/dist/src/utils/memory-health-scoring.js +277 -0
- package/dist/src/utils/memory-health-scoring.js.map +1 -0
- package/dist/src/utils/memory-migration-manager.d.ts +93 -0
- package/dist/src/utils/memory-migration-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-migration-manager.js +842 -0
- package/dist/src/utils/memory-migration-manager.js.map +1 -0
- package/dist/src/utils/memory-relationship-mapper.d.ts +87 -0
- package/dist/src/utils/memory-relationship-mapper.d.ts.map +1 -0
- package/dist/src/utils/memory-relationship-mapper.js +482 -0
- package/dist/src/utils/memory-relationship-mapper.js.map +1 -0
- package/dist/src/utils/memory-rollback-manager.d.ts +105 -0
- package/dist/src/utils/memory-rollback-manager.d.ts.map +1 -0
- package/dist/src/utils/memory-rollback-manager.js +575 -0
- package/dist/src/utils/memory-rollback-manager.js.map +1 -0
- package/dist/src/utils/memory-transformation.d.ts +59 -0
- package/dist/src/utils/memory-transformation.d.ts.map +1 -0
- package/dist/src/utils/memory-transformation.js +742 -0
- package/dist/src/utils/memory-transformation.js.map +1 -0
- package/dist/src/utils/output-masking.d.ts +12 -0
- package/dist/src/utils/output-masking.d.ts.map +1 -1
- package/dist/src/utils/output-masking.js +5 -0
- package/dist/src/utils/output-masking.js.map +1 -1
- package/dist/src/utils/prompt-execution.d.ts.map +1 -1
- package/dist/src/utils/prompt-execution.js +72 -51
- package/dist/src/utils/prompt-execution.js.map +1 -1
- package/dist/src/utils/release-readiness-detector.d.ts.map +1 -1
- package/dist/src/utils/release-readiness-detector.js +43 -42
- package/dist/src/utils/release-readiness-detector.js.map +1 -1
- package/dist/src/utils/research-integration.d.ts.map +1 -1
- package/dist/src/utils/research-integration.js +73 -44
- 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 +40 -14
- package/dist/src/utils/research-questions.js.map +1 -1
- package/dist/src/utils/ripgrep-wrapper.d.ts +84 -0
- package/dist/src/utils/ripgrep-wrapper.d.ts.map +1 -0
- package/dist/src/utils/ripgrep-wrapper.js +255 -0
- package/dist/src/utils/ripgrep-wrapper.js.map +1 -0
- package/dist/src/utils/rule-generation.d.ts.map +1 -1
- package/dist/src/utils/rule-generation.js +26 -15
- package/dist/src/utils/rule-generation.js.map +1 -1
- package/dist/src/utils/todo-file-watcher.d.ts +11 -23
- package/dist/src/utils/todo-file-watcher.d.ts.map +1 -1
- package/dist/src/utils/todo-file-watcher.js +18 -156
- package/dist/src/utils/todo-file-watcher.js.map +1 -1
- package/dist/src/utils/tree-sitter-analyzer.d.ts +185 -0
- package/dist/src/utils/tree-sitter-analyzer.d.ts.map +1 -0
- package/dist/src/utils/tree-sitter-analyzer.js +885 -0
- package/dist/src/utils/tree-sitter-analyzer.js.map +1 -0
- package/package.json +51 -10
- package/dist/src/tools/smart-score-tool.d.ts +0 -173
- package/dist/src/tools/smart-score-tool.d.ts.map +0 -1
- package/dist/src/tools/smart-score-tool.js +0 -681
- package/dist/src/tools/smart-score-tool.js.map +0 -1
- package/dist/src/tools/todo-management-tool-v2.d.ts +0 -368
- package/dist/src/tools/todo-management-tool-v2.d.ts.map +0 -1
- package/dist/src/tools/todo-management-tool-v2.js +0 -922
- package/dist/src/tools/todo-management-tool-v2.js.map +0 -1
- package/dist/src/utils/enhanced-sensitive-detector.d.ts +0 -61
- package/dist/src/utils/enhanced-sensitive-detector.d.ts.map +0 -1
- package/dist/src/utils/enhanced-sensitive-detector.js +0 -437
- package/dist/src/utils/enhanced-sensitive-detector.js.map +0 -1
- package/dist/src/utils/project-health-scoring.d.ts +0 -177
- package/dist/src/utils/project-health-scoring.d.ts.map +0 -1
- package/dist/src/utils/project-health-scoring.js +0 -370
- package/dist/src/utils/project-health-scoring.js.map +0 -1
- package/dist/src/utils/todo-json-manager.d.ts +0 -71
- package/dist/src/utils/todo-json-manager.d.ts.map +0 -1
- package/dist/src/utils/todo-json-manager.js +0 -396
- package/dist/src/utils/todo-json-manager.js.map +0 -1
- package/dist/src/utils/todo-markdown-converter.d.ts +0 -16
- package/dist/src/utils/todo-markdown-converter.d.ts.map +0 -1
- package/dist/src/utils/todo-markdown-converter.js +0 -362
- package/dist/src/utils/todo-markdown-converter.js.map +0 -1
- package/dist/src/utils/todo-migration.d.ts +0 -47
- package/dist/src/utils/todo-migration.d.ts.map +0 -1
- package/dist/src/utils/todo-migration.js +0 -261
- 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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"}
|