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,71 +0,0 @@
1
- /**
2
- * JSON-First TODO Management System
3
- *
4
- * Provides consistent, structured TODO management with automatic scoring sync,
5
- * knowledge graph integration, and intelligent task automation.
6
- */
7
- import { TodoJsonData, TodoTask, TaskUpdateOperation, TodoScoreMetrics } from '../types/todo-json-schemas.js';
8
- export declare class TodoJsonManager {
9
- private todoJsonPath;
10
- private todoMdPath;
11
- private cacheDir;
12
- private kgManager;
13
- private healthScoring;
14
- constructor(projectPath?: string);
15
- /**
16
- * Load TODO data from JSON, creating default structure if needed
17
- */
18
- loadTodoData(): Promise<TodoJsonData>;
19
- /**
20
- * Save TODO data to JSON and optionally sync to markdown
21
- */
22
- saveTodoData(data: TodoJsonData, syncToMarkdown?: boolean): Promise<void>;
23
- /**
24
- * Create a new task with automatic ID generation and scoring integration
25
- */
26
- createTask(taskData: Partial<TodoTask> & {
27
- title: string;
28
- }): Promise<string>;
29
- /**
30
- * Update task with automatic changelog and scoring sync
31
- */
32
- updateTask(operation: TaskUpdateOperation): Promise<void>;
33
- /**
34
- * Move task between sections automatically
35
- */
36
- private moveTaskBetweenSections;
37
- /**
38
- * Process auto-completion rules
39
- */
40
- private processAutoCompletionRules;
41
- /**
42
- * Update scoring system with current task data
43
- */
44
- private updateScoring;
45
- /**
46
- * Calculate comprehensive score metrics
47
- */
48
- private calculateScoreMetrics;
49
- /**
50
- * Link task to knowledge graph
51
- */
52
- private linkToKnowledgeGraph;
53
- /**
54
- * Convert JSON data to markdown format
55
- */
56
- convertToMarkdown(data?: TodoJsonData): Promise<void>;
57
- /**
58
- * Import existing TODO.md into JSON format
59
- */
60
- importFromMarkdown(): Promise<void>;
61
- /**
62
- * Get analytics and metrics
63
- */
64
- getAnalytics(): Promise<{
65
- metrics: TodoScoreMetrics;
66
- trends: any[];
67
- recommendations: string[];
68
- }>;
69
- private ensureCacheDirectory;
70
- }
71
- //# sourceMappingURL=todo-json-manager.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"todo-json-manager.d.ts","sourceRoot":"","sources":["../../../src/utils/todo-json-manager.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAKH,OAAO,EACL,YAAY,EACZ,QAAQ,EAER,mBAAmB,EACnB,gBAAgB,EAEjB,MAAM,+BAA+B,CAAC;AAKvC,qBAAa,eAAe;IAC1B,OAAO,CAAC,YAAY,CAAS;IAC7B,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,QAAQ,CAAS;IACzB,OAAO,CAAC,SAAS,CAAwB;IACzC,OAAO,CAAC,aAAa,CAAuB;gBAEhC,WAAW,CAAC,EAAE,MAAM;IAYhC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC,YAAY,CAAC;IA6D3C;;OAEG;IACG,YAAY,CAAC,IAAI,EAAE,YAAY,EAAE,cAAc,GAAE,OAAc,GAAG,OAAO,CAAC,IAAI,CAAC;IAmBrF;;OAEG;IACG,UAAU,CAAC,QAAQ,EAAE,OAAO,CAAC,QAAQ,CAAC,GAAG;QAAE,KAAK,EAAE,MAAM,CAAA;KAAE,GAAG,OAAO,CAAC,MAAM,CAAC;IAmElF;;OAEG;IACG,UAAU,CAAC,SAAS,EAAE,mBAAmB,GAAG,OAAO,CAAC,IAAI,CAAC;IA+C/D;;OAEG;YACW,uBAAuB;IAkBrC;;OAEG;YACW,0BAA0B;IAsBxC;;OAEG;YACW,aAAa;IA4B3B;;OAEG;IACH,OAAO,CAAC,qBAAqB;IA6D7B;;OAEG;YACW,oBAAoB;IAkBlC;;OAEG;IACG,iBAAiB,CAAC,IAAI,CAAC,EAAE,YAAY,GAAG,OAAO,CAAC,IAAI,CAAC;IAW3D;;OAEG;IACG,kBAAkB,IAAI,OAAO,CAAC,IAAI,CAAC;IAazC;;OAEG;IACG,YAAY,IAAI,OAAO,CAAC;QAC5B,OAAO,EAAE,gBAAgB,CAAC;QAC1B,MAAM,EAAE,GAAG,EAAE,CAAC;QACd,eAAe,EAAE,MAAM,EAAE,CAAC;KAC3B,CAAC;YAsBY,oBAAoB;CAOnC"}
@@ -1,396 +0,0 @@
1
- /**
2
- * JSON-First TODO Management System
3
- *
4
- * Provides consistent, structured TODO management with automatic scoring sync,
5
- * knowledge graph integration, and intelligent task automation.
6
- */
7
- import * as fs from 'fs/promises';
8
- import path from 'path';
9
- import crypto from 'crypto';
10
- import { TodoJsonDataSchema } from '../types/todo-json-schemas.js';
11
- import { loadConfig } from './config.js';
12
- import { KnowledgeGraphManager } from './knowledge-graph-manager.js';
13
- import { ProjectHealthScoring } from './project-health-scoring.js';
14
- export class TodoJsonManager {
15
- todoJsonPath;
16
- todoMdPath;
17
- cacheDir;
18
- kgManager;
19
- healthScoring;
20
- constructor(projectPath) {
21
- const config = loadConfig();
22
- const basePath = projectPath || config.projectPath;
23
- this.cacheDir = path.join(basePath, '.mcp-adr-cache');
24
- this.todoJsonPath = path.join(this.cacheDir, 'todo-data.json');
25
- this.todoMdPath = path.join(basePath, 'TODO.md');
26
- this.kgManager = new KnowledgeGraphManager();
27
- this.healthScoring = new ProjectHealthScoring(basePath);
28
- }
29
- /**
30
- * Load TODO data from JSON, creating default structure if needed
31
- */
32
- async loadTodoData() {
33
- await this.ensureCacheDirectory();
34
- try {
35
- const data = await fs.readFile(this.todoJsonPath, 'utf-8');
36
- const parsed = JSON.parse(data);
37
- return TodoJsonDataSchema.parse(parsed);
38
- }
39
- catch (error) {
40
- // Create default structure
41
- const defaultData = {
42
- version: '1.0.0',
43
- metadata: {
44
- lastUpdated: new Date().toISOString(),
45
- totalTasks: 0,
46
- completedTasks: 0,
47
- autoSyncEnabled: true
48
- },
49
- tasks: {},
50
- sections: [
51
- {
52
- id: 'pending',
53
- title: 'Pending Tasks',
54
- order: 1,
55
- collapsed: false,
56
- tasks: []
57
- },
58
- {
59
- id: 'in_progress',
60
- title: 'In Progress',
61
- order: 2,
62
- collapsed: false,
63
- tasks: []
64
- },
65
- {
66
- id: 'completed',
67
- title: 'Completed',
68
- order: 3,
69
- collapsed: false,
70
- tasks: []
71
- }
72
- ],
73
- scoringSync: {
74
- lastScoreUpdate: new Date().toISOString(),
75
- taskCompletionScore: 0,
76
- priorityWeightedScore: 0,
77
- criticalTasksRemaining: 0,
78
- scoreHistory: []
79
- },
80
- knowledgeGraphSync: {
81
- lastSync: new Date().toISOString(),
82
- linkedIntents: [],
83
- pendingUpdates: []
84
- },
85
- automationRules: []
86
- };
87
- await this.saveTodoData(defaultData);
88
- return defaultData;
89
- }
90
- }
91
- /**
92
- * Save TODO data to JSON and optionally sync to markdown
93
- */
94
- async saveTodoData(data, syncToMarkdown = true) {
95
- await this.ensureCacheDirectory();
96
- // Update metadata
97
- data.metadata.lastUpdated = new Date().toISOString();
98
- data.metadata.totalTasks = Object.keys(data.tasks).length;
99
- data.metadata.completedTasks = Object.values(data.tasks).filter(t => t.status === 'completed').length;
100
- // Save JSON
101
- await fs.writeFile(this.todoJsonPath, JSON.stringify(data, null, 2));
102
- // Auto-sync to markdown if enabled
103
- if (syncToMarkdown && data.metadata.autoSyncEnabled) {
104
- await this.convertToMarkdown(data);
105
- data.metadata.lastSyncToMarkdown = new Date().toISOString();
106
- await fs.writeFile(this.todoJsonPath, JSON.stringify(data, null, 2));
107
- }
108
- }
109
- /**
110
- * Create a new task with automatic ID generation and scoring integration
111
- */
112
- async createTask(taskData) {
113
- const data = await this.loadTodoData();
114
- const taskId = crypto.randomUUID();
115
- const now = new Date().toISOString();
116
- const task = {
117
- id: taskId,
118
- title: taskData.title,
119
- description: taskData.description || '',
120
- status: taskData.status || 'pending',
121
- priority: taskData.priority || 'medium',
122
- category: taskData.category,
123
- assignee: taskData.assignee,
124
- createdAt: now,
125
- updatedAt: now,
126
- completedAt: taskData.completedAt || (taskData.status === 'completed' ? now : undefined),
127
- dueDate: taskData.dueDate,
128
- parentTaskId: taskData.parentTaskId,
129
- subtasks: taskData.subtasks || [],
130
- dependencies: taskData.dependencies || [],
131
- blockedBy: taskData.blockedBy || [],
132
- linkedAdrs: taskData.linkedAdrs || [],
133
- adrGeneratedTask: taskData.adrGeneratedTask || false,
134
- intentId: taskData.intentId,
135
- toolExecutions: taskData.toolExecutions || [],
136
- scoreWeight: taskData.scoreWeight || 1,
137
- scoreCategory: taskData.scoreCategory || 'task_completion',
138
- estimatedHours: taskData.estimatedHours,
139
- actualHours: taskData.actualHours,
140
- progressPercentage: taskData.progressPercentage || (taskData.status === 'completed' ? 100 : 0),
141
- tags: taskData.tags || [],
142
- notes: taskData.notes,
143
- lastModifiedBy: taskData.lastModifiedBy || 'tool',
144
- autoComplete: taskData.autoComplete || false,
145
- completionCriteria: taskData.completionCriteria,
146
- version: 1,
147
- changeLog: [{
148
- timestamp: now,
149
- action: 'created',
150
- details: taskData.status === 'completed' ?
151
- `Task created with preserved completion: ${taskData.title}` :
152
- `Task created: ${taskData.title}`,
153
- modifiedBy: taskData.lastModifiedBy || 'tool'
154
- }]
155
- };
156
- // Add to tasks
157
- data.tasks[taskId] = task;
158
- // Add to appropriate section
159
- const targetSection = data.sections.find(s => s.id === task.status) || data.sections[0];
160
- if (targetSection) {
161
- targetSection.tasks.push(taskId);
162
- }
163
- // Update knowledge graph if intentId provided
164
- if (task.intentId) {
165
- await this.linkToKnowledgeGraph(taskId, task.intentId, 'generated_from');
166
- }
167
- await this.saveTodoData(data);
168
- await this.updateScoring(data);
169
- return taskId;
170
- }
171
- /**
172
- * Update task with automatic changelog and scoring sync
173
- */
174
- async updateTask(operation) {
175
- const data = await this.loadTodoData();
176
- const task = data.tasks[operation.taskId];
177
- if (!task) {
178
- throw new Error(`Task ${operation.taskId} not found`);
179
- }
180
- const now = new Date().toISOString();
181
- const oldStatus = task.status;
182
- // Apply updates
183
- Object.assign(task, operation.updates);
184
- task.updatedAt = now;
185
- task.version += 1;
186
- // Add changelog entry
187
- task.changeLog.push({
188
- timestamp: now,
189
- action: 'updated',
190
- details: operation.reason,
191
- modifiedBy: operation.triggeredBy
192
- });
193
- // Handle status changes
194
- if (operation.updates.status && operation.updates.status !== oldStatus) {
195
- await this.moveTaskBetweenSections(data, operation.taskId, oldStatus, operation.updates.status);
196
- // Handle completion
197
- if (operation.updates.status === 'completed') {
198
- task.completedAt = now;
199
- task.progressPercentage = 100;
200
- // Update knowledge graph
201
- if (task.intentId) {
202
- await this.kgManager.updateTodoSnapshot(task.intentId, `Task completed: ${task.title}`);
203
- }
204
- // Check for auto-completion rules
205
- await this.processAutoCompletionRules(data, operation.taskId);
206
- }
207
- }
208
- await this.saveTodoData(data);
209
- await this.updateScoring(data);
210
- }
211
- /**
212
- * Move task between sections automatically
213
- */
214
- async moveTaskBetweenSections(data, taskId, fromStatus, toStatus) {
215
- const fromSection = data.sections.find(s => s.id === fromStatus);
216
- const toSection = data.sections.find(s => s.id === toStatus);
217
- if (fromSection) {
218
- fromSection.tasks = fromSection.tasks.filter(id => id !== taskId);
219
- }
220
- if (toSection) {
221
- toSection.tasks.push(taskId);
222
- }
223
- }
224
- /**
225
- * Process auto-completion rules
226
- */
227
- async processAutoCompletionRules(data, completedTaskId) {
228
- // Check for dependent tasks that can now be auto-completed
229
- for (const [taskId, task] of Object.entries(data.tasks)) {
230
- if (task.autoComplete && task.dependencies.includes(completedTaskId)) {
231
- const allDependenciesCompleted = task.dependencies.every(depId => {
232
- const depTask = data.tasks[depId];
233
- return depTask && depTask.status === 'completed';
234
- });
235
- if (allDependenciesCompleted) {
236
- await this.updateTask({
237
- taskId,
238
- updates: { status: 'completed' },
239
- reason: `Auto-completed: all dependencies satisfied`,
240
- triggeredBy: 'automation'
241
- });
242
- }
243
- }
244
- }
245
- }
246
- /**
247
- * Update scoring system with current task data
248
- */
249
- async updateScoring(data) {
250
- const metrics = this.calculateScoreMetrics(data);
251
- // Update scoring sync
252
- data.scoringSync = {
253
- lastScoreUpdate: new Date().toISOString(),
254
- taskCompletionScore: metrics.completionPercentage,
255
- priorityWeightedScore: metrics.priorityWeightedScore,
256
- criticalTasksRemaining: metrics.criticalTasksRemaining,
257
- scoreHistory: [
258
- ...data.scoringSync.scoreHistory,
259
- {
260
- timestamp: new Date().toISOString(),
261
- score: metrics.completionPercentage,
262
- trigger: 'task_update'
263
- }
264
- ].slice(-50) // Keep last 50 entries
265
- };
266
- // Update project health scoring
267
- await this.healthScoring.updateTaskCompletionScore({
268
- completed: metrics.completedTasks,
269
- total: metrics.totalTasks,
270
- criticalTasksRemaining: metrics.criticalTasksRemaining,
271
- priorityWeightedScore: metrics.priorityWeightedScore
272
- });
273
- }
274
- /**
275
- * Calculate comprehensive score metrics
276
- */
277
- calculateScoreMetrics(data) {
278
- const tasks = Object.values(data.tasks);
279
- const totalTasks = tasks.length;
280
- const completedTasks = tasks.filter(t => t.status === 'completed').length;
281
- const completionPercentage = totalTasks > 0 ? (completedTasks / totalTasks) * 100 : 100;
282
- // Priority-weighted scoring
283
- const priorityWeights = { low: 1, medium: 2, high: 3, critical: 4 };
284
- const totalWeight = tasks.reduce((sum, t) => sum + priorityWeights[t.priority], 0);
285
- const completedWeight = tasks
286
- .filter(t => t.status === 'completed')
287
- .reduce((sum, t) => sum + priorityWeights[t.priority], 0);
288
- const priorityWeightedScore = totalWeight > 0 ? (completedWeight / totalWeight) * 100 : 100;
289
- // Critical tasks remaining
290
- const criticalTasksRemaining = tasks.filter(t => t.priority === 'critical' && t.status !== 'completed').length;
291
- // Other metrics
292
- const blockedTasksCount = tasks.filter(t => t.status === 'blocked').length;
293
- const now = new Date();
294
- const averageTaskAge = tasks.reduce((sum, t) => {
295
- const age = (now.getTime() - new Date(t.createdAt).getTime()) / (1000 * 60 * 60 * 24);
296
- return sum + age;
297
- }, 0) / totalTasks;
298
- // Velocity metrics (last 7 days)
299
- const weekAgo = new Date(now.getTime() - 7 * 24 * 60 * 60 * 1000);
300
- const tasksCompletedLastWeek = tasks.filter(t => t.status === 'completed' &&
301
- t.completedAt &&
302
- new Date(t.completedAt) > weekAgo).length;
303
- const completedTasksWithDuration = tasks.filter(t => t.status === 'completed' &&
304
- t.completedAt);
305
- const averageCompletionTime = completedTasksWithDuration.length > 0
306
- ? completedTasksWithDuration.reduce((sum, t) => {
307
- const duration = (new Date(t.completedAt).getTime() - new Date(t.createdAt).getTime()) / (1000 * 60 * 60);
308
- return sum + duration;
309
- }, 0) / completedTasksWithDuration.length
310
- : 0;
311
- return {
312
- totalTasks,
313
- completedTasks,
314
- completionPercentage,
315
- priorityWeightedScore,
316
- criticalTasksRemaining,
317
- blockedTasksCount,
318
- averageTaskAge,
319
- velocityMetrics: {
320
- tasksCompletedLastWeek,
321
- averageCompletionTime
322
- }
323
- };
324
- }
325
- /**
326
- * Link task to knowledge graph
327
- */
328
- async linkToKnowledgeGraph(taskId, intentId, _linkType) {
329
- const data = await this.loadTodoData();
330
- // Update knowledge graph sync
331
- data.knowledgeGraphSync.linkedIntents.push(intentId);
332
- data.knowledgeGraphSync.pendingUpdates.push({
333
- taskId,
334
- updateType: 'status',
335
- timestamp: new Date().toISOString()
336
- });
337
- await this.saveTodoData(data, false); // Don't sync to markdown yet
338
- }
339
- /**
340
- * Convert JSON data to markdown format
341
- */
342
- async convertToMarkdown(data) {
343
- if (!data) {
344
- data = await this.loadTodoData();
345
- }
346
- const { generateTodoMarkdown } = await import('./todo-markdown-converter.js');
347
- const markdown = await generateTodoMarkdown(data);
348
- await fs.writeFile(this.todoMdPath, markdown);
349
- }
350
- /**
351
- * Import existing TODO.md into JSON format
352
- */
353
- async importFromMarkdown() {
354
- try {
355
- const markdownContent = await fs.readFile(this.todoMdPath, 'utf-8');
356
- const { parseMarkdownToJson } = await import('./todo-markdown-converter.js');
357
- const jsonData = await parseMarkdownToJson(markdownContent);
358
- await this.saveTodoData(jsonData, false);
359
- }
360
- catch (error) {
361
- // If TODO.md doesn't exist, create fresh JSON
362
- await this.loadTodoData();
363
- }
364
- }
365
- /**
366
- * Get analytics and metrics
367
- */
368
- async getAnalytics() {
369
- const data = await this.loadTodoData();
370
- const metrics = this.calculateScoreMetrics(data);
371
- const recommendations = [];
372
- if (metrics.criticalTasksRemaining > 0) {
373
- recommendations.push(`Address ${metrics.criticalTasksRemaining} critical tasks`);
374
- }
375
- if (metrics.blockedTasksCount > 0) {
376
- recommendations.push(`Resolve ${metrics.blockedTasksCount} blocked tasks`);
377
- }
378
- if (metrics.averageTaskAge > 30) {
379
- recommendations.push('Consider breaking down old tasks or removing stale ones');
380
- }
381
- return {
382
- metrics,
383
- trends: data.scoringSync.scoreHistory,
384
- recommendations
385
- };
386
- }
387
- async ensureCacheDirectory() {
388
- try {
389
- await fs.access(this.cacheDir);
390
- }
391
- catch {
392
- await fs.mkdir(this.cacheDir, { recursive: true });
393
- }
394
- }
395
- }
396
- //# sourceMappingURL=todo-json-manager.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"todo-json-manager.js","sourceRoot":"","sources":["../../../src/utils/todo-json-manager.ts"],"names":[],"mappings":"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"}
@@ -1,16 +0,0 @@
1
- /**
2
- * TODO JSON ↔ Markdown Converter
3
- *
4
- * Converts between structured JSON format and human-readable markdown,
5
- * preserving all metadata and enabling seamless bidirectional sync.
6
- */
7
- import { TodoJsonData } from '../types/todo-json-schemas.js';
8
- /**
9
- * Convert JSON TODO data to markdown format
10
- */
11
- export declare function generateTodoMarkdown(data: TodoJsonData): Promise<string>;
12
- /**
13
- * Parse markdown content back to JSON format
14
- */
15
- export declare function parseMarkdownToJson(markdown: string): Promise<TodoJsonData>;
16
- //# sourceMappingURL=todo-markdown-converter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"todo-markdown-converter.d.ts","sourceRoot":"","sources":["../../../src/utils/todo-markdown-converter.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAEH,OAAO,EAAE,YAAY,EAAyB,MAAM,+BAA+B,CAAC;AAKpF;;GAEG;AACH,wBAAsB,oBAAoB,CAAC,IAAI,EAAE,YAAY,GAAG,OAAO,CAAC,MAAM,CAAC,CA6D9E;AAuFD;;GAEG;AACH,wBAAsB,mBAAmB,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC,CA+EjF"}