context-tracker-mcp1.0 1.0.6
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/bin/context-tracker-mcp.cmd +2 -0
- package/bin/context-tracker-mcp.js +4 -0
- package/dist/config-manager.d.ts +32 -0
- package/dist/config-manager.d.ts.map +1 -0
- package/dist/config-manager.js +103 -0
- package/dist/config-manager.js.map +1 -0
- package/dist/context-tracker.d.ts +73 -0
- package/dist/context-tracker.d.ts.map +1 -0
- package/dist/context-tracker.js +375 -0
- package/dist/context-tracker.js.map +1 -0
- package/dist/documentation-generator.d.ts +13 -0
- package/dist/documentation-generator.d.ts.map +1 -0
- package/dist/documentation-generator.js +308 -0
- package/dist/documentation-generator.js.map +1 -0
- package/dist/error-analyzer.d.ts +21 -0
- package/dist/error-analyzer.d.ts.map +1 -0
- package/dist/error-analyzer.js +69 -0
- package/dist/error-analyzer.js.map +1 -0
- package/dist/file-watcher.d.ts +36 -0
- package/dist/file-watcher.d.ts.map +1 -0
- package/dist/file-watcher.js +225 -0
- package/dist/file-watcher.js.map +1 -0
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +476 -0
- package/dist/index.js.map +1 -0
- package/dist/mutex.d.ts +137 -0
- package/dist/mutex.d.ts.map +1 -0
- package/dist/mutex.js +276 -0
- package/dist/mutex.js.map +1 -0
- package/dist/project-intelligence.d.ts +24 -0
- package/dist/project-intelligence.d.ts.map +1 -0
- package/dist/project-intelligence.js +101 -0
- package/dist/project-intelligence.js.map +1 -0
- package/dist/resource-manager.d.ts +33 -0
- package/dist/resource-manager.d.ts.map +1 -0
- package/dist/resource-manager.js +188 -0
- package/dist/resource-manager.js.map +1 -0
- package/mcp-config.json +125 -0
- package/package.json +56 -0
|
@@ -0,0 +1,308 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Escape markdown special characters to prevent injection
|
|
3
|
+
*/
|
|
4
|
+
function escapeMarkdown(text) {
|
|
5
|
+
return text
|
|
6
|
+
.replace(/\\/g, '\\\\')
|
|
7
|
+
.replace(/\*/g, '\\*')
|
|
8
|
+
.replace(/_/g, '\\_')
|
|
9
|
+
.replace(/\[/g, '\\[')
|
|
10
|
+
.replace(/\]/g, '\\]')
|
|
11
|
+
.replace(/</g, '\\<')
|
|
12
|
+
.replace(/>/g, '\\>')
|
|
13
|
+
.replace(/`/g, '\\`')
|
|
14
|
+
.replace(/#/g, '\\#');
|
|
15
|
+
}
|
|
16
|
+
export class DocumentationGenerator {
|
|
17
|
+
contextTracker;
|
|
18
|
+
constructor(contextTracker) {
|
|
19
|
+
this.contextTracker = contextTracker;
|
|
20
|
+
}
|
|
21
|
+
async generate(type, format = 'markdown') {
|
|
22
|
+
switch (type) {
|
|
23
|
+
case 'features':
|
|
24
|
+
return this.generateFeaturesDocumentation(format);
|
|
25
|
+
case 'errors':
|
|
26
|
+
return this.generateErrorsDocumentation(format);
|
|
27
|
+
case 'styling':
|
|
28
|
+
return this.generateStylingDocumentation(format);
|
|
29
|
+
case 'complete':
|
|
30
|
+
return this.generateCompleteDocumentation(format);
|
|
31
|
+
default:
|
|
32
|
+
throw new Error(`Unknown documentation type: ${type}`);
|
|
33
|
+
}
|
|
34
|
+
}
|
|
35
|
+
async generateFeaturesDocumentation(format) {
|
|
36
|
+
const history = await this.contextTracker.getHistory();
|
|
37
|
+
const stats = await this.contextTracker.getStatistics();
|
|
38
|
+
if (format === 'json') {
|
|
39
|
+
return JSON.stringify({
|
|
40
|
+
type: 'features',
|
|
41
|
+
statistics: stats,
|
|
42
|
+
features: history.filter(entry => entry.action === 'complete'),
|
|
43
|
+
inProgress: history.filter(entry => entry.status === 'active')
|
|
44
|
+
}, null, 2);
|
|
45
|
+
}
|
|
46
|
+
return `# Project Features Documentation
|
|
47
|
+
|
|
48
|
+
## 📊 Statistics
|
|
49
|
+
- **Total Context Entries**: ${stats.totalContextEntries}
|
|
50
|
+
- **Active Tasks**: ${stats.activeContexts}
|
|
51
|
+
- **Files Modified**: ${stats.uniqueFiles}
|
|
52
|
+
- **Last Updated**: ${new Date().toLocaleDateString()}
|
|
53
|
+
|
|
54
|
+
## ✅ Completed Features
|
|
55
|
+
|
|
56
|
+
${history.filter(entry => entry.action === 'complete').map(entry => `
|
|
57
|
+
### ${escapeMarkdown(entry.description)}
|
|
58
|
+
- **ID**: ${entry.id}
|
|
59
|
+
- **Completed**: ${new Date(entry.timestamp).toLocaleString()}
|
|
60
|
+
- **Files Modified**: ${entry.files.length > 0 ? entry.files.map(f => `\`${escapeMarkdown(f)}\``).join(', ') : 'None'}
|
|
61
|
+
${entry.code ? `\n\`\`\`\n${entry.code}\n\`\`\`` : ''}
|
|
62
|
+
`).join('\n---\n')}
|
|
63
|
+
|
|
64
|
+
## 🔄 Currently In Progress
|
|
65
|
+
|
|
66
|
+
${history.filter(entry => entry.status === 'active').map(entry => `
|
|
67
|
+
### ${escapeMarkdown(entry.description)}
|
|
68
|
+
- **ID**: ${entry.id}
|
|
69
|
+
- **Started**: ${new Date(entry.timestamp).toLocaleString()}
|
|
70
|
+
- **Files**: ${entry.files.length > 0 ? entry.files.map(f => `\`${escapeMarkdown(f)}\``).join(', ') : 'None'}
|
|
71
|
+
`).join('\n---\n') || 'No active tasks currently.'}
|
|
72
|
+
|
|
73
|
+
---
|
|
74
|
+
|
|
75
|
+
*Generated by Context Tracker MCP on ${new Date().toISOString()}*
|
|
76
|
+
`;
|
|
77
|
+
}
|
|
78
|
+
async generateErrorsDocumentation(format) {
|
|
79
|
+
const errors = await this.contextTracker.getErrorLog();
|
|
80
|
+
if (format === 'json') {
|
|
81
|
+
return JSON.stringify({
|
|
82
|
+
type: 'errors',
|
|
83
|
+
totalErrors: errors.length,
|
|
84
|
+
errors: errors
|
|
85
|
+
}, null, 2);
|
|
86
|
+
}
|
|
87
|
+
return `# Error Log Documentation
|
|
88
|
+
|
|
89
|
+
## 📈 Error Statistics
|
|
90
|
+
- **Total Errors**: ${errors.length}
|
|
91
|
+
- **All Resolved**: ${errors.every(e => e.resolved) ? '✅ Yes' : '❌ No'}
|
|
92
|
+
- **Last Updated**: ${new Date().toLocaleDateString()}
|
|
93
|
+
|
|
94
|
+
## 🐛 Error History
|
|
95
|
+
|
|
96
|
+
${errors.map(error => `
|
|
97
|
+
### ${escapeMarkdown(error.error)}
|
|
98
|
+
- **ID**: ${error.id}
|
|
99
|
+
- **Occurred**: ${new Date(error.timestamp).toLocaleString()}
|
|
100
|
+
- **Status**: ${error.resolved ? '✅ Resolved' : '❌ Unresolved'}
|
|
101
|
+
- **Context**: ${escapeMarkdown(error.context || 'No context provided')}
|
|
102
|
+
|
|
103
|
+
#### Solution Applied
|
|
104
|
+
\`\`\`
|
|
105
|
+
${error.solution}
|
|
106
|
+
\`\`\`
|
|
107
|
+
|
|
108
|
+
---
|
|
109
|
+
|
|
110
|
+
`).join('')}
|
|
111
|
+
|
|
112
|
+
---
|
|
113
|
+
|
|
114
|
+
*Generated by Context Tracker MCP on ${new Date().toISOString()}*
|
|
115
|
+
`;
|
|
116
|
+
}
|
|
117
|
+
async generateStylingDocumentation(format) {
|
|
118
|
+
const styling = await this.contextTracker.getStylingHistory();
|
|
119
|
+
const stats = await this.contextTracker.getStatistics();
|
|
120
|
+
if (format === 'json') {
|
|
121
|
+
return JSON.stringify({
|
|
122
|
+
type: 'styling',
|
|
123
|
+
statistics: stats,
|
|
124
|
+
stylingEntries: styling
|
|
125
|
+
}, null, 2);
|
|
126
|
+
}
|
|
127
|
+
const elementGroups = styling.reduce((groups, entry) => {
|
|
128
|
+
if (!groups[entry.element]) {
|
|
129
|
+
groups[entry.element] = [];
|
|
130
|
+
}
|
|
131
|
+
groups[entry.element].push(entry);
|
|
132
|
+
return groups;
|
|
133
|
+
}, {});
|
|
134
|
+
return `# Styling Documentation
|
|
135
|
+
|
|
136
|
+
## 📊 Styling Statistics
|
|
137
|
+
- **Total Styling Entries**: ${stats.totalStylingEntries}
|
|
138
|
+
- **Unique Elements**: ${stats.uniqueElements}
|
|
139
|
+
- **Last Updated**: ${new Date().toLocaleDateString()}
|
|
140
|
+
|
|
141
|
+
## 🎨 Elements Styling History
|
|
142
|
+
|
|
143
|
+
${Object.entries(elementGroups).map(([element, entries]) => `
|
|
144
|
+
### ${escapeMarkdown(element)}
|
|
145
|
+
${entries[0].component ? `- **Component**: ${escapeMarkdown(entries[0].component)}` : ''}
|
|
146
|
+
|
|
147
|
+
#### Styling Changes
|
|
148
|
+
|
|
149
|
+
${entries.map(entry => `
|
|
150
|
+
**${new Date(entry.timestamp).toLocaleString()}** - \`${escapeMarkdown(entry.location)}\`
|
|
151
|
+
\`\`\`css
|
|
152
|
+
${(() => {
|
|
153
|
+
try {
|
|
154
|
+
return JSON.stringify(entry.styles, null, 2);
|
|
155
|
+
}
|
|
156
|
+
catch {
|
|
157
|
+
return '{ /* Complex styles */ }';
|
|
158
|
+
}
|
|
159
|
+
})()}
|
|
160
|
+
\`\`\`
|
|
161
|
+
`).join('\n')}
|
|
162
|
+
|
|
163
|
+
---
|
|
164
|
+
|
|
165
|
+
`).join('')}
|
|
166
|
+
|
|
167
|
+
## 📁 Files with Styling Changes
|
|
168
|
+
|
|
169
|
+
${[...new Set(styling.map(s => s.location))].map(location => `
|
|
170
|
+
### ${escapeMarkdown(location)}
|
|
171
|
+
${styling.filter(s => s.location === location).map(s => `- \`${escapeMarkdown(s.element)}\`: ${Object.keys(s.styles).join(', ')}`).join('\n')}
|
|
172
|
+
`).join('\n')}
|
|
173
|
+
|
|
174
|
+
---
|
|
175
|
+
|
|
176
|
+
*Generated by Context Tracker MCP on ${new Date().toISOString()}*
|
|
177
|
+
`;
|
|
178
|
+
}
|
|
179
|
+
async generateCompleteDocumentation(format) {
|
|
180
|
+
const history = await this.contextTracker.getHistory();
|
|
181
|
+
const errors = await this.contextTracker.getErrorLog();
|
|
182
|
+
const styling = await this.contextTracker.getStylingHistory();
|
|
183
|
+
const stats = await this.contextTracker.getStatistics();
|
|
184
|
+
if (format === 'json') {
|
|
185
|
+
return JSON.stringify({
|
|
186
|
+
type: 'complete',
|
|
187
|
+
statistics: stats,
|
|
188
|
+
context: history,
|
|
189
|
+
errors: errors,
|
|
190
|
+
styling: styling,
|
|
191
|
+
generatedAt: new Date().toISOString()
|
|
192
|
+
}, null, 2);
|
|
193
|
+
}
|
|
194
|
+
return `# Complete Project Documentation
|
|
195
|
+
|
|
196
|
+
> *This documentation is automatically generated by Context Tracker MCP*
|
|
197
|
+
|
|
198
|
+
## 📋 Table of Contents
|
|
199
|
+
1. [Project Overview](#project-overview)
|
|
200
|
+
2. [Features & Development](#features--development)
|
|
201
|
+
3. [Error Log](#error-log)
|
|
202
|
+
4. [Styling Guide](#styling-guide)
|
|
203
|
+
5. [File Structure](#file-structure)
|
|
204
|
+
|
|
205
|
+
---
|
|
206
|
+
|
|
207
|
+
## 🎯 Project Overview
|
|
208
|
+
|
|
209
|
+
### Statistics
|
|
210
|
+
- **Total Development Entries**: ${stats.totalContextEntries}
|
|
211
|
+
- **Active Tasks**: ${stats.activeContexts}
|
|
212
|
+
- **Files Modified**: ${stats.uniqueFiles}
|
|
213
|
+
- **Total Errors**: ${stats.totalErrors}
|
|
214
|
+
- **Styling Changes**: ${stats.totalStylingEntries}
|
|
215
|
+
- **Unique Elements Styled**: ${stats.uniqueElements}
|
|
216
|
+
|
|
217
|
+
### Development Timeline
|
|
218
|
+
${history.slice(0, 10).map(entry => `- **${new Date(entry.timestamp).toLocaleDateString()}**: ${entry.action.toUpperCase()} - ${escapeMarkdown(entry.description)}`).join('\n')}
|
|
219
|
+
|
|
220
|
+
---
|
|
221
|
+
|
|
222
|
+
## 🚀 Features & Development
|
|
223
|
+
|
|
224
|
+
### Recently Completed
|
|
225
|
+
${history.filter(entry => entry.action === 'complete').slice(0, 5).map(entry => `
|
|
226
|
+
#### ${escapeMarkdown(entry.description)}
|
|
227
|
+
- **Completed**: ${new Date(entry.timestamp).toLocaleString()}
|
|
228
|
+
- **Files**: ${entry.files.map(f => `\`${escapeMarkdown(f)}\``).join(', ')}
|
|
229
|
+
`).join('\n') || 'No completed features yet.'}
|
|
230
|
+
|
|
231
|
+
### Currently Working On
|
|
232
|
+
${history.filter(entry => entry.status === 'active').map(entry => `
|
|
233
|
+
#### ${escapeMarkdown(entry.description)}
|
|
234
|
+
- **Started**: ${new Date(entry.timestamp).toLocaleString()}
|
|
235
|
+
- **Files**: ${entry.files.map(f => `\`${escapeMarkdown(f)}\``).join(', ')}
|
|
236
|
+
`).join('\n') || 'No active tasks currently.'}
|
|
237
|
+
|
|
238
|
+
---
|
|
239
|
+
|
|
240
|
+
## 🐛 Error Log
|
|
241
|
+
|
|
242
|
+
### Recent Errors
|
|
243
|
+
${errors.slice(0, 5).map(error => `
|
|
244
|
+
#### ${escapeMarkdown(error.error)}
|
|
245
|
+
- **When**: ${new Date(error.timestamp).toLocaleString()}
|
|
246
|
+
- **Solution**: ${escapeMarkdown(error.solution)}
|
|
247
|
+
- **Status**: ${error.resolved ? '✅ Resolved' : '❌ Open'}
|
|
248
|
+
`).join('\n') || 'No errors recorded yet.'}
|
|
249
|
+
|
|
250
|
+
---
|
|
251
|
+
|
|
252
|
+
## 🎨 Styling Guide
|
|
253
|
+
|
|
254
|
+
### Recent Styling Changes
|
|
255
|
+
${styling.slice(0, 5).map(entry => `
|
|
256
|
+
#### ${escapeMarkdown(entry.element)}
|
|
257
|
+
- **Location**: \`${escapeMarkdown(entry.location)}\`
|
|
258
|
+
- **When**: ${new Date(entry.timestamp).toLocaleString()}
|
|
259
|
+
- **Styles**: ${Object.keys(entry.styles).join(', ')}
|
|
260
|
+
${entry.component ? `- **Component**: ${escapeMarkdown(entry.component)}` : ''}
|
|
261
|
+
`).join('\n') || 'No styling changes recorded yet.'}
|
|
262
|
+
|
|
263
|
+
---
|
|
264
|
+
|
|
265
|
+
## 📁 File Structure
|
|
266
|
+
|
|
267
|
+
### Most Modified Files
|
|
268
|
+
${this.getMostModifiedFiles(history).map(([file, count]) => `- \`${escapeMarkdown(file)}\` (${count} modifications)`).join('\n') || 'No file modifications recorded yet.'}
|
|
269
|
+
|
|
270
|
+
---
|
|
271
|
+
|
|
272
|
+
## 📊 Development Activity
|
|
273
|
+
|
|
274
|
+
### Last 7 Days Activity
|
|
275
|
+
${this.getRecentActivity(history).map(day => `- **${day.date}**: ${day.entries} development entries`).join('\n')}
|
|
276
|
+
|
|
277
|
+
---
|
|
278
|
+
|
|
279
|
+
*Documentation generated on ${new Date().toLocaleString()} by Context Tracker MCP*
|
|
280
|
+
*Last data update: ${history.length > 0 ? new Date(history[history.length - 1].timestamp).toLocaleString() : 'No data'}*
|
|
281
|
+
`;
|
|
282
|
+
}
|
|
283
|
+
getMostModifiedFiles(history) {
|
|
284
|
+
const fileCounts = history.reduce((counts, entry) => {
|
|
285
|
+
entry.files.forEach((file) => {
|
|
286
|
+
counts[file] = (counts[file] || 0) + 1;
|
|
287
|
+
});
|
|
288
|
+
return counts;
|
|
289
|
+
}, {});
|
|
290
|
+
return Object.entries(fileCounts)
|
|
291
|
+
.sort(([, a], [, b]) => b - a)
|
|
292
|
+
.slice(0, 10);
|
|
293
|
+
}
|
|
294
|
+
getRecentActivity(history) {
|
|
295
|
+
const sevenDaysAgo = new Date();
|
|
296
|
+
sevenDaysAgo.setDate(sevenDaysAgo.getDate() - 7);
|
|
297
|
+
const recentEntries = history.filter(entry => new Date(entry.timestamp) >= sevenDaysAgo);
|
|
298
|
+
const dailyActivity = recentEntries.reduce((activity, entry) => {
|
|
299
|
+
const date = new Date(entry.timestamp).toLocaleDateString();
|
|
300
|
+
activity[date] = (activity[date] || 0) + 1;
|
|
301
|
+
return activity;
|
|
302
|
+
}, {});
|
|
303
|
+
return Object.entries(dailyActivity)
|
|
304
|
+
.map(([date, entries]) => ({ date, entries: entries }))
|
|
305
|
+
.sort((a, b) => new Date(b.date).getTime() - new Date(a.date).getTime());
|
|
306
|
+
}
|
|
307
|
+
}
|
|
308
|
+
//# sourceMappingURL=documentation-generator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"documentation-generator.js","sourceRoot":"","sources":["../src/documentation-generator.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
export declare class ErrorAnalyzer {
|
|
2
|
+
private errorPatterns;
|
|
3
|
+
private solutions;
|
|
4
|
+
analyzeError(error: string, solution: string): {
|
|
5
|
+
pattern: string;
|
|
6
|
+
frequency: number;
|
|
7
|
+
suggestions: string[];
|
|
8
|
+
};
|
|
9
|
+
private extractPattern;
|
|
10
|
+
private getRelatedSolutions;
|
|
11
|
+
getErrorStatistics(): {
|
|
12
|
+
totalErrors: number;
|
|
13
|
+
commonPatterns: Array<{
|
|
14
|
+
pattern: string;
|
|
15
|
+
count: number;
|
|
16
|
+
}>;
|
|
17
|
+
suggestedImprovements: string[];
|
|
18
|
+
};
|
|
19
|
+
private generateImprovements;
|
|
20
|
+
}
|
|
21
|
+
//# sourceMappingURL=error-analyzer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-analyzer.d.ts","sourceRoot":"","sources":["../src/error-analyzer.ts"],"names":[],"mappings":"AAAA,qBAAa,aAAa;IACxB,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,SAAS,CAAoC;IAErD,YAAY,CAAC,KAAK,EAAE,MAAM,EAAE,QAAQ,EAAE,MAAM,GAAG;QAC7C,OAAO,EAAE,MAAM,CAAC;QAChB,SAAS,EAAE,MAAM,CAAC;QAClB,WAAW,EAAE,MAAM,EAAE,CAAC;KACvB;IAiBD,OAAO,CAAC,cAAc;IAMtB,OAAO,CAAC,mBAAmB;IAsB3B,kBAAkB,IAAI;QACpB,WAAW,EAAE,MAAM,CAAC;QACpB,cAAc,EAAE,KAAK,CAAC;YAAE,OAAO,EAAE,MAAM,CAAC;YAAC,KAAK,EAAE,MAAM,CAAA;SAAE,CAAC,CAAC;QAC1D,qBAAqB,EAAE,MAAM,EAAE,CAAC;KACjC;IAkBD,OAAO,CAAC,oBAAoB;CAe7B"}
|
|
@@ -0,0 +1,69 @@
|
|
|
1
|
+
export class ErrorAnalyzer {
|
|
2
|
+
errorPatterns = new Map();
|
|
3
|
+
solutions = new Map();
|
|
4
|
+
analyzeError(error, solution) {
|
|
5
|
+
const pattern = this.extractPattern(error);
|
|
6
|
+
const frequency = this.errorPatterns.get(pattern) || 0;
|
|
7
|
+
this.errorPatterns.set(pattern, frequency + 1);
|
|
8
|
+
const existingSolutions = this.solutions.get(pattern) || [];
|
|
9
|
+
existingSolutions.push(solution);
|
|
10
|
+
this.solutions.set(pattern, existingSolutions);
|
|
11
|
+
return {
|
|
12
|
+
pattern,
|
|
13
|
+
frequency: frequency + 1,
|
|
14
|
+
suggestions: this.getRelatedSolutions(pattern)
|
|
15
|
+
};
|
|
16
|
+
}
|
|
17
|
+
extractPattern(error) {
|
|
18
|
+
// Extract error type (e.g., "TypeError", "ReferenceError", etc.)
|
|
19
|
+
const match = error.match(/^(\w+):/);
|
|
20
|
+
return match ? match[1] : 'Unknown';
|
|
21
|
+
}
|
|
22
|
+
getRelatedSolutions(pattern) {
|
|
23
|
+
const commonSolutions = {
|
|
24
|
+
'TypeError': [
|
|
25
|
+
'Add null check before accessing property',
|
|
26
|
+
'Initialize variable properly',
|
|
27
|
+
'Check if object exists'
|
|
28
|
+
],
|
|
29
|
+
'ReferenceError': [
|
|
30
|
+
'Check variable scope',
|
|
31
|
+
'Import missing module',
|
|
32
|
+
'Verify variable declaration'
|
|
33
|
+
],
|
|
34
|
+
'SyntaxError': [
|
|
35
|
+
'Check syntax near error location',
|
|
36
|
+
'Validate brackets and parentheses',
|
|
37
|
+
'Check for missing semicolons'
|
|
38
|
+
]
|
|
39
|
+
};
|
|
40
|
+
return commonSolutions[pattern] || ['Review error context and code'];
|
|
41
|
+
}
|
|
42
|
+
getErrorStatistics() {
|
|
43
|
+
const totalErrors = Array.from(this.errorPatterns.values())
|
|
44
|
+
.reduce((sum, count) => sum + count, 0);
|
|
45
|
+
const commonPatterns = Array.from(this.errorPatterns.entries())
|
|
46
|
+
.map(([pattern, count]) => ({ pattern, count }))
|
|
47
|
+
.sort((a, b) => b.count - a.count)
|
|
48
|
+
.slice(0, 5);
|
|
49
|
+
const suggestedImprovements = this.generateImprovements(commonPatterns);
|
|
50
|
+
return {
|
|
51
|
+
totalErrors,
|
|
52
|
+
commonPatterns,
|
|
53
|
+
suggestedImprovements
|
|
54
|
+
};
|
|
55
|
+
}
|
|
56
|
+
generateImprovements(patterns) {
|
|
57
|
+
const improvements = [];
|
|
58
|
+
if (patterns.some(p => p.pattern === 'TypeError')) {
|
|
59
|
+
improvements.push('Add TypeScript strict mode for better type checking');
|
|
60
|
+
improvements.push('Implement null safety checks throughout codebase');
|
|
61
|
+
}
|
|
62
|
+
if (patterns.some(p => p.pattern === 'ReferenceError')) {
|
|
63
|
+
improvements.push('Review module imports and exports');
|
|
64
|
+
improvements.push('Add ESLint rules for undefined variables');
|
|
65
|
+
}
|
|
66
|
+
return improvements;
|
|
67
|
+
}
|
|
68
|
+
}
|
|
69
|
+
//# sourceMappingURL=error-analyzer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"error-analyzer.js","sourceRoot":"","sources":["../src/error-analyzer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import { ContextTracker } from './context-tracker.js';
|
|
2
|
+
interface FileChangeEvent {
|
|
3
|
+
path: string;
|
|
4
|
+
type: 'add' | 'change' | 'unlink';
|
|
5
|
+
timestamp: string;
|
|
6
|
+
content?: string;
|
|
7
|
+
}
|
|
8
|
+
export declare class FileWatcher {
|
|
9
|
+
private contextTracker;
|
|
10
|
+
private watcher;
|
|
11
|
+
private changeLog;
|
|
12
|
+
private watchedPaths;
|
|
13
|
+
private isInitialized;
|
|
14
|
+
constructor(contextTracker: ContextTracker);
|
|
15
|
+
initialize(watchedPaths?: string[]): Promise<void>;
|
|
16
|
+
private setupEventHandlers;
|
|
17
|
+
private handleFileChange;
|
|
18
|
+
private autoTrackContext;
|
|
19
|
+
private trackStyleChanges;
|
|
20
|
+
getChangeLog(limit?: number): FileChangeEvent[];
|
|
21
|
+
getChangesForFile(filePath: string): FileChangeEvent[];
|
|
22
|
+
addWatchPath(path: string): Promise<void>;
|
|
23
|
+
removeWatchPath(path: string): Promise<void>;
|
|
24
|
+
getWatchedPaths(): string[];
|
|
25
|
+
stop(): Promise<void>;
|
|
26
|
+
exportChangeLog(format?: 'json' | 'csv'): Promise<string>;
|
|
27
|
+
getStatistics(): {
|
|
28
|
+
totalChanges: number;
|
|
29
|
+
changesByType: Record<string, number>;
|
|
30
|
+
changesByFile: Record<string, number>;
|
|
31
|
+
watchedPaths: number;
|
|
32
|
+
isInitialized: boolean;
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
export {};
|
|
36
|
+
//# sourceMappingURL=file-watcher.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"file-watcher.d.ts","sourceRoot":"","sources":["../src/file-watcher.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,cAAc,EAAE,MAAM,sBAAsB,CAAC;AAEtD,UAAU,eAAe;IACvB,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,EAAE,KAAK,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAClC,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,qBAAa,WAAW;IACtB,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,OAAO,CAA0B;IACzC,OAAO,CAAC,SAAS,CAAyB;IAC1C,OAAO,CAAC,YAAY,CAAgB;IACpC,OAAO,CAAC,aAAa,CAAS;gBAElB,cAAc,EAAE,cAAc;IAIpC,UAAU,CAAC,YAAY,GAAE,MAAM,EAA0C;IAqC/E,OAAO,CAAC,kBAAkB;YAkBZ,gBAAgB;YAuChB,gBAAgB;YAoChB,iBAAiB;IAmC/B,YAAY,CAAC,KAAK,CAAC,EAAE,MAAM;IAI3B,iBAAiB,CAAC,QAAQ,EAAE,MAAM;IAI5B,YAAY,CAAC,IAAI,EAAE,MAAM;IAUzB,eAAe,CAAC,IAAI,EAAE,MAAM;IAWlC,eAAe;IAIT,IAAI;IAQJ,eAAe,CAAC,MAAM,GAAE,MAAM,GAAG,KAAc;IAoBrD,aAAa;;;;;;;CAmBd"}
|