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.
Files changed (40) hide show
  1. package/bin/context-tracker-mcp.cmd +2 -0
  2. package/bin/context-tracker-mcp.js +4 -0
  3. package/dist/config-manager.d.ts +32 -0
  4. package/dist/config-manager.d.ts.map +1 -0
  5. package/dist/config-manager.js +103 -0
  6. package/dist/config-manager.js.map +1 -0
  7. package/dist/context-tracker.d.ts +73 -0
  8. package/dist/context-tracker.d.ts.map +1 -0
  9. package/dist/context-tracker.js +375 -0
  10. package/dist/context-tracker.js.map +1 -0
  11. package/dist/documentation-generator.d.ts +13 -0
  12. package/dist/documentation-generator.d.ts.map +1 -0
  13. package/dist/documentation-generator.js +308 -0
  14. package/dist/documentation-generator.js.map +1 -0
  15. package/dist/error-analyzer.d.ts +21 -0
  16. package/dist/error-analyzer.d.ts.map +1 -0
  17. package/dist/error-analyzer.js +69 -0
  18. package/dist/error-analyzer.js.map +1 -0
  19. package/dist/file-watcher.d.ts +36 -0
  20. package/dist/file-watcher.d.ts.map +1 -0
  21. package/dist/file-watcher.js +225 -0
  22. package/dist/file-watcher.js.map +1 -0
  23. package/dist/index.d.ts +2 -0
  24. package/dist/index.d.ts.map +1 -0
  25. package/dist/index.js +476 -0
  26. package/dist/index.js.map +1 -0
  27. package/dist/mutex.d.ts +137 -0
  28. package/dist/mutex.d.ts.map +1 -0
  29. package/dist/mutex.js +276 -0
  30. package/dist/mutex.js.map +1 -0
  31. package/dist/project-intelligence.d.ts +24 -0
  32. package/dist/project-intelligence.d.ts.map +1 -0
  33. package/dist/project-intelligence.js +101 -0
  34. package/dist/project-intelligence.js.map +1 -0
  35. package/dist/resource-manager.d.ts +33 -0
  36. package/dist/resource-manager.d.ts.map +1 -0
  37. package/dist/resource-manager.js +188 -0
  38. package/dist/resource-manager.js.map +1 -0
  39. package/mcp-config.json +125 -0
  40. package/package.json +56 -0
@@ -0,0 +1,225 @@
1
+ import { watch } from 'chokidar';
2
+ import { promises as fs } from 'fs';
3
+ import { extname } from 'path';
4
+ export class FileWatcher {
5
+ contextTracker;
6
+ watcher = null;
7
+ changeLog = [];
8
+ watchedPaths = [];
9
+ isInitialized = false;
10
+ constructor(contextTracker) {
11
+ this.contextTracker = contextTracker;
12
+ }
13
+ async initialize(watchedPaths = ['./src', './components', './styles']) {
14
+ if (this.isInitialized) {
15
+ return;
16
+ }
17
+ this.watchedPaths = watchedPaths;
18
+ try {
19
+ // Create directories if they don't exist
20
+ for (const path of watchedPaths) {
21
+ try {
22
+ await fs.mkdir(path, { recursive: true });
23
+ }
24
+ catch {
25
+ // Directory might already exist
26
+ }
27
+ }
28
+ // Initialize file watcher
29
+ this.watcher = watch(watchedPaths, {
30
+ ignored: /(^|[\/\\])\../, // ignore dotfiles
31
+ persistent: true,
32
+ ignoreInitial: false,
33
+ awaitWriteFinish: {
34
+ stabilityThreshold: 100,
35
+ pollInterval: 50
36
+ }
37
+ });
38
+ this.setupEventHandlers();
39
+ this.isInitialized = true;
40
+ console.log(`File watcher initialized for paths: ${watchedPaths.join(', ')}`);
41
+ }
42
+ catch (error) {
43
+ console.error('Failed to initialize file watcher:', error);
44
+ }
45
+ }
46
+ setupEventHandlers() {
47
+ if (!this.watcher)
48
+ return;
49
+ this.watcher
50
+ .on('add', path => this.handleFileChange('add', path))
51
+ .on('change', path => this.handleFileChange('change', path))
52
+ .on('unlink', path => this.handleFileChange('unlink', path))
53
+ .on('error', async (error) => {
54
+ console.error('File watcher error:', error);
55
+ // Track watcher errors in the error system
56
+ await this.contextTracker.logError(`File watcher error: ${error.message}`, 'Check file permissions and paths', 'FileWatcher event handler');
57
+ });
58
+ }
59
+ async handleFileChange(type, path) {
60
+ const timestamp = new Date().toISOString();
61
+ let content;
62
+ if (type !== 'unlink') {
63
+ try {
64
+ content = await fs.readFile(path, 'utf-8');
65
+ }
66
+ catch (error) {
67
+ console.error(`Failed to read file ${path}:`, error);
68
+ // Track file read errors in the error system
69
+ await this.contextTracker.logError(`Failed to read file ${path}: ${error.message}`, 'Check file permissions and ensure file exists', `FileWatcher.handleFileChange - type: ${type}`);
70
+ return;
71
+ }
72
+ }
73
+ const changeEvent = {
74
+ path,
75
+ type,
76
+ timestamp,
77
+ content
78
+ };
79
+ this.changeLog.push(changeEvent);
80
+ // Keep only last 1000 changes to prevent memory issues
81
+ if (this.changeLog.length > 1000) {
82
+ this.changeLog = this.changeLog.slice(-1000);
83
+ }
84
+ // Auto-track context based on file changes
85
+ await this.autoTrackContext(changeEvent);
86
+ console.log(`File ${type}: ${path}`);
87
+ }
88
+ async autoTrackContext(changeEvent) {
89
+ const { path, type, content } = changeEvent;
90
+ // Determine file type and appropriate action
91
+ const fileExtension = extname(path);
92
+ const isCodeFile = ['.ts', '.js', '.tsx', '.jsx', '.py', '.java', '.cpp', '.c'].includes(fileExtension);
93
+ const isStyleFile = ['.css', '.scss', '.sass', '.less', '.styl'].includes(fileExtension);
94
+ const isMarkupFile = ['.html', '.htm', '.jsx', '.tsx', '.vue', '.svelte'].includes(fileExtension);
95
+ if (type === 'change' && content) {
96
+ if (isCodeFile) {
97
+ // Track code changes
98
+ await this.contextTracker.trackContext('update', {
99
+ description: `Auto-tracked code change in ${path}`,
100
+ files: [path],
101
+ code: content.slice(0, 500) // Store first 500 chars
102
+ });
103
+ }
104
+ else if (isStyleFile) {
105
+ // Track styling changes
106
+ await this.trackStyleChanges(path, content);
107
+ }
108
+ else if (isMarkupFile) {
109
+ // Track markup changes
110
+ await this.contextTracker.trackContext('update', {
111
+ description: `Auto-tracked markup change in ${path}`,
112
+ files: [path],
113
+ code: content.slice(0, 300)
114
+ });
115
+ }
116
+ }
117
+ else if (type === 'add') {
118
+ await this.contextTracker.trackContext('update', {
119
+ description: `New file added: ${path}`,
120
+ files: [path]
121
+ });
122
+ }
123
+ }
124
+ async trackStyleChanges(filePath, content) {
125
+ // CSS parsing - handle selectors with dots (like .btn.primary) and nested rules
126
+ // Match selectors including those with dots, then capture the rule block
127
+ const cssRules = content.match(/([^{]+)\{([^}]+)\}/g) || [];
128
+ for (const rule of cssRules) {
129
+ const braceIndex = rule.indexOf('{');
130
+ if (braceIndex === -1)
131
+ continue;
132
+ const selector = rule.slice(0, braceIndex).trim();
133
+ const stylesBlock = rule.slice(braceIndex + 1, -1).trim(); // Remove closing brace
134
+ if (!selector || !stylesBlock)
135
+ continue;
136
+ // Parse individual style declarations
137
+ const styleDeclarations = stylesBlock.split(';').filter(s => s.trim());
138
+ const styles = {};
139
+ for (const declaration of styleDeclarations) {
140
+ const colonIndex = declaration.indexOf(':');
141
+ if (colonIndex === -1)
142
+ continue;
143
+ const property = declaration.slice(0, colonIndex).trim();
144
+ const value = declaration.slice(colonIndex + 1).trim();
145
+ if (property && value) {
146
+ styles[property] = value;
147
+ }
148
+ }
149
+ if (Object.keys(styles).length > 0) {
150
+ await this.contextTracker.trackStyling(selector, styles, filePath);
151
+ }
152
+ }
153
+ }
154
+ getChangeLog(limit) {
155
+ return limit ? this.changeLog.slice(-limit) : [...this.changeLog];
156
+ }
157
+ getChangesForFile(filePath) {
158
+ return this.changeLog.filter(change => change.path === filePath);
159
+ }
160
+ async addWatchPath(path) {
161
+ if (!this.watchedPaths.includes(path)) {
162
+ this.watchedPaths.push(path);
163
+ if (this.watcher) {
164
+ await this.watcher.add(path);
165
+ }
166
+ }
167
+ }
168
+ async removeWatchPath(path) {
169
+ const index = this.watchedPaths.indexOf(path);
170
+ if (index > -1) {
171
+ this.watchedPaths.splice(index, 1);
172
+ if (this.watcher) {
173
+ await this.watcher.unwatch(path);
174
+ }
175
+ }
176
+ }
177
+ getWatchedPaths() {
178
+ return [...this.watchedPaths];
179
+ }
180
+ async stop() {
181
+ if (this.watcher) {
182
+ await this.watcher.close();
183
+ this.watcher = null;
184
+ }
185
+ this.isInitialized = false;
186
+ }
187
+ async exportChangeLog(format = 'json') {
188
+ if (format === 'json') {
189
+ return JSON.stringify({
190
+ changeLog: this.changeLog,
191
+ watchedPaths: this.watchedPaths,
192
+ exportedAt: new Date().toISOString()
193
+ }, null, 2);
194
+ }
195
+ else {
196
+ // CSV format
197
+ const csvLines = ['Path,Type,Timestamp,Content Preview'];
198
+ this.changeLog.forEach(change => {
199
+ const contentPreview = change.content ?
200
+ `"${change.content.replace(/"/g, '""').slice(0, 100)}"` :
201
+ '""';
202
+ csvLines.push(`"${change.path}",${change.type},${change.timestamp},${contentPreview}`);
203
+ });
204
+ return csvLines.join('\n');
205
+ }
206
+ }
207
+ getStatistics() {
208
+ const changesByType = this.changeLog.reduce((counts, change) => {
209
+ counts[change.type] = (counts[change.type] || 0) + 1;
210
+ return counts;
211
+ }, {});
212
+ const changesByFile = this.changeLog.reduce((counts, change) => {
213
+ counts[change.path] = (counts[change.path] || 0) + 1;
214
+ return counts;
215
+ }, {});
216
+ return {
217
+ totalChanges: this.changeLog.length,
218
+ changesByType,
219
+ changesByFile,
220
+ watchedPaths: this.watchedPaths.length,
221
+ isInitialized: this.isInitialized
222
+ };
223
+ }
224
+ }
225
+ //# sourceMappingURL=file-watcher.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"file-watcher.js","sourceRoot":"","sources":["../src/file-watcher.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":""}