statecli-mcp-server 0.1.2 → 0.3.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.
Files changed (45) hide show
  1. package/README.md +334 -153
  2. package/dist/cross-file-impact.d.ts +85 -0
  3. package/dist/cross-file-impact.d.ts.map +1 -0
  4. package/dist/cross-file-impact.js +338 -0
  5. package/dist/cross-file-impact.js.map +1 -0
  6. package/dist/dependency-tracker.d.ts +78 -0
  7. package/dist/dependency-tracker.d.ts.map +1 -0
  8. package/dist/dependency-tracker.js +334 -0
  9. package/dist/dependency-tracker.js.map +1 -0
  10. package/dist/enhanced-mcp-server.d.ts +50 -0
  11. package/dist/enhanced-mcp-server.d.ts.map +1 -0
  12. package/dist/enhanced-mcp-server.js +664 -0
  13. package/dist/enhanced-mcp-server.js.map +1 -0
  14. package/dist/error-recovery.d.ts +66 -0
  15. package/dist/error-recovery.d.ts.map +1 -0
  16. package/dist/error-recovery.js +210 -0
  17. package/dist/error-recovery.js.map +1 -0
  18. package/dist/file-tracker.d.ts +81 -0
  19. package/dist/file-tracker.d.ts.map +1 -0
  20. package/dist/file-tracker.js +252 -0
  21. package/dist/file-tracker.js.map +1 -0
  22. package/dist/git-integration.d.ts +95 -0
  23. package/dist/git-integration.d.ts.map +1 -0
  24. package/dist/git-integration.js +219 -0
  25. package/dist/git-integration.js.map +1 -0
  26. package/dist/index-enhanced.d.ts +12 -0
  27. package/dist/index-enhanced.d.ts.map +1 -0
  28. package/dist/index-enhanced.js +27 -0
  29. package/dist/index-enhanced.js.map +1 -0
  30. package/dist/rollback-preview.d.ts +77 -0
  31. package/dist/rollback-preview.d.ts.map +1 -0
  32. package/dist/rollback-preview.js +244 -0
  33. package/dist/rollback-preview.js.map +1 -0
  34. package/dist/session-memory.d.ts +85 -0
  35. package/dist/session-memory.d.ts.map +1 -0
  36. package/dist/session-memory.js +325 -0
  37. package/dist/session-memory.js.map +1 -0
  38. package/dist/test-awareness.d.ts +85 -0
  39. package/dist/test-awareness.d.ts.map +1 -0
  40. package/dist/test-awareness.js +329 -0
  41. package/dist/test-awareness.js.map +1 -0
  42. package/dist/types.d.ts +11 -8
  43. package/dist/types.d.ts.map +1 -1
  44. package/dist/types.js.map +1 -1
  45. package/package.json +3 -2
@@ -0,0 +1,334 @@
1
+ "use strict";
2
+ /**
3
+ * Dependency Tracker - Understand code dependencies
4
+ *
5
+ * Analyzes imports/exports to understand what code depends on what.
6
+ */
7
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
8
+ if (k2 === undefined) k2 = k;
9
+ var desc = Object.getOwnPropertyDescriptor(m, k);
10
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
11
+ desc = { enumerable: true, get: function() { return m[k]; } };
12
+ }
13
+ Object.defineProperty(o, k2, desc);
14
+ }) : (function(o, m, k, k2) {
15
+ if (k2 === undefined) k2 = k;
16
+ o[k2] = m[k];
17
+ }));
18
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
19
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
20
+ }) : function(o, v) {
21
+ o["default"] = v;
22
+ });
23
+ var __importStar = (this && this.__importStar) || (function () {
24
+ var ownKeys = function(o) {
25
+ ownKeys = Object.getOwnPropertyNames || function (o) {
26
+ var ar = [];
27
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
28
+ return ar;
29
+ };
30
+ return ownKeys(o);
31
+ };
32
+ return function (mod) {
33
+ if (mod && mod.__esModule) return mod;
34
+ var result = {};
35
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
36
+ __setModuleDefault(result, mod);
37
+ return result;
38
+ };
39
+ })();
40
+ Object.defineProperty(exports, "__esModule", { value: true });
41
+ exports.DependencyTracker = void 0;
42
+ const fs = __importStar(require("fs"));
43
+ const path = __importStar(require("path"));
44
+ class DependencyTracker {
45
+ statecli;
46
+ projectPath;
47
+ graph;
48
+ fileExtensions;
49
+ constructor(statecli, projectPath = '.', options) {
50
+ this.statecli = statecli;
51
+ this.projectPath = path.resolve(projectPath);
52
+ this.fileExtensions = options?.extensions || ['.ts', '.tsx', '.js', '.jsx', '.py', '.java'];
53
+ this.graph = { files: new Map(), edges: [] };
54
+ }
55
+ /**
56
+ * Build dependency graph for the project
57
+ */
58
+ buildGraph(rootDir) {
59
+ const startDir = rootDir || this.projectPath;
60
+ this.graph = { files: new Map(), edges: [] };
61
+ this.scanDirectory(startDir);
62
+ this.buildReverseLinks();
63
+ // Track graph build in StateCLI
64
+ this.statecli.track('dependency', 'graph', {
65
+ fileCount: this.graph.files.size,
66
+ edgeCount: this.graph.edges.length,
67
+ timestamp: new Date().toISOString()
68
+ }, 'dependency-tracker');
69
+ return this.graph;
70
+ }
71
+ /**
72
+ * Analyze impact of changing a file
73
+ */
74
+ analyzeImpact(filePath) {
75
+ const normalizedPath = this.normalizePath(filePath);
76
+ const node = this.graph.files.get(normalizedPath);
77
+ if (!node) {
78
+ // File not in graph, try to rebuild
79
+ this.buildGraph();
80
+ }
81
+ const directDependents = this.getDirectDependents(normalizedPath);
82
+ const transitiveDependents = this.getTransitiveDependents(normalizedPath);
83
+ // Calculate risk level
84
+ const totalImpact = transitiveDependents.length;
85
+ let riskLevel;
86
+ let recommendation;
87
+ if (totalImpact === 0) {
88
+ riskLevel = 'low';
89
+ recommendation = 'No other files depend on this. Safe to modify.';
90
+ }
91
+ else if (totalImpact <= 3) {
92
+ riskLevel = 'low';
93
+ recommendation = `${totalImpact} files may be affected. Review changes carefully.`;
94
+ }
95
+ else if (totalImpact <= 10) {
96
+ riskLevel = 'medium';
97
+ recommendation = `${totalImpact} files may be affected. Consider creating a checkpoint first.`;
98
+ }
99
+ else if (totalImpact <= 25) {
100
+ riskLevel = 'high';
101
+ recommendation = `${totalImpact} files may be affected. Test thoroughly before committing.`;
102
+ }
103
+ else {
104
+ riskLevel = 'critical';
105
+ recommendation = `${totalImpact} files may be affected. This is a core file - proceed with extreme caution.`;
106
+ }
107
+ // Track analysis
108
+ this.statecli.track('dependency', 'impact-analysis', {
109
+ file: normalizedPath,
110
+ directCount: directDependents.length,
111
+ transitiveCount: transitiveDependents.length,
112
+ riskLevel
113
+ }, 'dependency-tracker');
114
+ return {
115
+ changedFile: normalizedPath,
116
+ directDependents,
117
+ transitiveDependents,
118
+ riskLevel,
119
+ recommendation
120
+ };
121
+ }
122
+ /**
123
+ * Get what a file depends on
124
+ */
125
+ getDependencies(filePath) {
126
+ const normalizedPath = this.normalizePath(filePath);
127
+ const node = this.graph.files.get(normalizedPath);
128
+ return node?.dependsOn || [];
129
+ }
130
+ /**
131
+ * Get what depends on a file
132
+ */
133
+ getDependents(filePath) {
134
+ const normalizedPath = this.normalizePath(filePath);
135
+ const node = this.graph.files.get(normalizedPath);
136
+ return node?.dependedBy || [];
137
+ }
138
+ /**
139
+ * Find circular dependencies
140
+ */
141
+ findCircularDependencies() {
142
+ const cycles = [];
143
+ const visited = new Set();
144
+ const recursionStack = new Set();
145
+ const dfs = (file, path) => {
146
+ visited.add(file);
147
+ recursionStack.add(file);
148
+ path.push(file);
149
+ const node = this.graph.files.get(file);
150
+ if (node) {
151
+ for (const dep of node.dependsOn) {
152
+ if (!visited.has(dep)) {
153
+ dfs(dep, [...path]);
154
+ }
155
+ else if (recursionStack.has(dep)) {
156
+ // Found cycle
157
+ const cycleStart = path.indexOf(dep);
158
+ cycles.push(path.slice(cycleStart));
159
+ }
160
+ }
161
+ }
162
+ recursionStack.delete(file);
163
+ };
164
+ for (const file of this.graph.files.keys()) {
165
+ if (!visited.has(file)) {
166
+ dfs(file, []);
167
+ }
168
+ }
169
+ return cycles;
170
+ }
171
+ /**
172
+ * Get dependency tree as a string for display
173
+ */
174
+ getDependencyTree(filePath, maxDepth = 3) {
175
+ const normalizedPath = this.normalizePath(filePath);
176
+ const lines = [normalizedPath];
177
+ const buildTree = (file, depth, prefix) => {
178
+ if (depth >= maxDepth)
179
+ return;
180
+ const node = this.graph.files.get(file);
181
+ if (!node)
182
+ return;
183
+ const deps = node.dependsOn;
184
+ for (let i = 0; i < deps.length; i++) {
185
+ const isLast = i === deps.length - 1;
186
+ const connector = isLast ? '└── ' : '├── ';
187
+ const newPrefix = isLast ? ' ' : '│ ';
188
+ lines.push(`${prefix}${connector}${path.basename(deps[i])}`);
189
+ buildTree(deps[i], depth + 1, prefix + newPrefix);
190
+ }
191
+ };
192
+ buildTree(normalizedPath, 0, '');
193
+ return lines.join('\n');
194
+ }
195
+ /**
196
+ * Get most depended-upon files (core files)
197
+ */
198
+ getCoreFiles(limit = 10) {
199
+ const counts = [];
200
+ for (const [file, node] of this.graph.files) {
201
+ counts.push({
202
+ file,
203
+ dependentCount: node.dependedBy.length
204
+ });
205
+ }
206
+ return counts
207
+ .sort((a, b) => b.dependentCount - a.dependentCount)
208
+ .slice(0, limit);
209
+ }
210
+ scanDirectory(dir) {
211
+ try {
212
+ const entries = fs.readdirSync(dir, { withFileTypes: true });
213
+ for (const entry of entries) {
214
+ const fullPath = path.join(dir, entry.name);
215
+ if (entry.isDirectory()) {
216
+ // Skip common non-source directories
217
+ if (!['node_modules', '.git', 'dist', 'build', '__pycache__', '.next'].includes(entry.name)) {
218
+ this.scanDirectory(fullPath);
219
+ }
220
+ }
221
+ else if (entry.isFile() && this.fileExtensions.some(ext => entry.name.endsWith(ext))) {
222
+ this.analyzeFile(fullPath);
223
+ }
224
+ }
225
+ }
226
+ catch (error) {
227
+ // Directory might not be readable
228
+ }
229
+ }
230
+ analyzeFile(filePath) {
231
+ try {
232
+ const content = fs.readFileSync(filePath, 'utf-8');
233
+ const normalizedPath = this.normalizePath(filePath);
234
+ const imports = [];
235
+ const exports = [];
236
+ // Parse imports/requires
237
+ const importPatterns = [
238
+ /import\s+.*?\s+from\s+['"](.+?)['"]/g,
239
+ /import\s+['"](.+?)['"]/g,
240
+ /require\s*\(\s*['"](.+?)['"]\s*\)/g,
241
+ /from\s+(\S+)\s+import/g // Python
242
+ ];
243
+ for (const pattern of importPatterns) {
244
+ let match;
245
+ while ((match = pattern.exec(content)) !== null) {
246
+ const importPath = this.resolveImportPath(normalizedPath, match[1]);
247
+ if (importPath) {
248
+ imports.push(importPath);
249
+ this.graph.edges.push({
250
+ source: normalizedPath,
251
+ target: importPath,
252
+ type: 'import'
253
+ });
254
+ }
255
+ }
256
+ }
257
+ // Parse exports
258
+ const exportPattern = /export\s+(?:default\s+)?(?:class|function|const|let|var|interface|type)\s+(\w+)/g;
259
+ let match;
260
+ while ((match = exportPattern.exec(content)) !== null) {
261
+ exports.push(match[1]);
262
+ }
263
+ this.graph.files.set(normalizedPath, {
264
+ path: normalizedPath,
265
+ imports,
266
+ exports,
267
+ dependsOn: imports,
268
+ dependedBy: [] // Will be filled by buildReverseLinks
269
+ });
270
+ }
271
+ catch (error) {
272
+ // File might not be readable
273
+ }
274
+ }
275
+ buildReverseLinks() {
276
+ for (const [file, node] of this.graph.files) {
277
+ for (const dep of node.dependsOn) {
278
+ const depNode = this.graph.files.get(dep);
279
+ if (depNode && !depNode.dependedBy.includes(file)) {
280
+ depNode.dependedBy.push(file);
281
+ }
282
+ }
283
+ }
284
+ }
285
+ resolveImportPath(fromFile, importPath) {
286
+ // Handle relative imports
287
+ if (importPath.startsWith('.')) {
288
+ const dir = path.dirname(fromFile);
289
+ let resolved = path.resolve(dir, importPath);
290
+ // Try adding extensions
291
+ for (const ext of this.fileExtensions) {
292
+ if (fs.existsSync(resolved + ext)) {
293
+ return this.normalizePath(resolved + ext);
294
+ }
295
+ // Try index file
296
+ const indexPath = path.join(resolved, `index${ext}`);
297
+ if (fs.existsSync(indexPath)) {
298
+ return this.normalizePath(indexPath);
299
+ }
300
+ }
301
+ // Check if it exists as-is
302
+ if (fs.existsSync(resolved)) {
303
+ return this.normalizePath(resolved);
304
+ }
305
+ }
306
+ // Non-relative imports (node_modules, etc.) - skip
307
+ return null;
308
+ }
309
+ normalizePath(filePath) {
310
+ return path.relative(this.projectPath, filePath).replace(/\\/g, '/');
311
+ }
312
+ getDirectDependents(filePath) {
313
+ const node = this.graph.files.get(filePath);
314
+ return node?.dependedBy || [];
315
+ }
316
+ getTransitiveDependents(filePath, visited = new Set()) {
317
+ if (visited.has(filePath))
318
+ return [];
319
+ visited.add(filePath);
320
+ const direct = this.getDirectDependents(filePath);
321
+ const transitive = [...direct];
322
+ for (const dep of direct) {
323
+ const nested = this.getTransitiveDependents(dep, visited);
324
+ for (const n of nested) {
325
+ if (!transitive.includes(n)) {
326
+ transitive.push(n);
327
+ }
328
+ }
329
+ }
330
+ return transitive;
331
+ }
332
+ }
333
+ exports.DependencyTracker = DependencyTracker;
334
+ //# sourceMappingURL=dependency-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dependency-tracker.js","sourceRoot":"","sources":["../src/dependency-tracker.ts"],"names":[],"mappings":";AAAA;;;;GAIG;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEH,uCAAyB;AACzB,2CAA6B;AA+B7B,MAAa,iBAAiB;IACpB,QAAQ,CAAW;IACnB,WAAW,CAAS;IACpB,KAAK,CAAkB;IACvB,cAAc,CAAW;IAEjC,YACE,QAAkB,EAClB,cAAsB,GAAG,EACzB,OAEC;QAED,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC,CAAC;QAC7C,IAAI,CAAC,cAAc,GAAG,OAAO,EAAE,UAAU,IAAI,CAAC,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;QAC5F,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;IAC/C,CAAC;IAED;;OAEG;IACH,UAAU,CAAC,OAAgB;QACzB,MAAM,QAAQ,GAAG,OAAO,IAAI,IAAI,CAAC,WAAW,CAAC;QAC7C,IAAI,CAAC,KAAK,GAAG,EAAE,KAAK,EAAE,IAAI,GAAG,EAAE,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;QAE7C,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QAC7B,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,gCAAgC;QAChC,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,OAAO,EAAE;YACzC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI;YAChC,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,MAAM;YAClC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;SACpC,EAAE,oBAAoB,CAAC,CAAC;QAEzB,OAAO,IAAI,CAAC,KAAK,CAAC;IACpB,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAElD,IAAI,CAAC,IAAI,EAAE,CAAC;YACV,oCAAoC;YACpC,IAAI,CAAC,UAAU,EAAE,CAAC;QACpB,CAAC;QAED,MAAM,gBAAgB,GAAG,IAAI,CAAC,mBAAmB,CAAC,cAAc,CAAC,CAAC;QAClE,MAAM,oBAAoB,GAAG,IAAI,CAAC,uBAAuB,CAAC,cAAc,CAAC,CAAC;QAE1E,uBAAuB;QACvB,MAAM,WAAW,GAAG,oBAAoB,CAAC,MAAM,CAAC;QAChD,IAAI,SAAiD,CAAC;QACtD,IAAI,cAAsB,CAAC;QAE3B,IAAI,WAAW,KAAK,CAAC,EAAE,CAAC;YACtB,SAAS,GAAG,KAAK,CAAC;YAClB,cAAc,GAAG,gDAAgD,CAAC;QACpE,CAAC;aAAM,IAAI,WAAW,IAAI,CAAC,EAAE,CAAC;YAC5B,SAAS,GAAG,KAAK,CAAC;YAClB,cAAc,GAAG,GAAG,WAAW,mDAAmD,CAAC;QACrF,CAAC;aAAM,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;YAC7B,SAAS,GAAG,QAAQ,CAAC;YACrB,cAAc,GAAG,GAAG,WAAW,+DAA+D,CAAC;QACjG,CAAC;aAAM,IAAI,WAAW,IAAI,EAAE,EAAE,CAAC;YAC7B,SAAS,GAAG,MAAM,CAAC;YACnB,cAAc,GAAG,GAAG,WAAW,4DAA4D,CAAC;QAC9F,CAAC;aAAM,CAAC;YACN,SAAS,GAAG,UAAU,CAAC;YACvB,cAAc,GAAG,GAAG,WAAW,6EAA6E,CAAC;QAC/G,CAAC;QAED,iBAAiB;QACjB,IAAI,CAAC,QAAQ,CAAC,KAAK,CAAC,YAAY,EAAE,iBAAiB,EAAE;YACnD,IAAI,EAAE,cAAc;YACpB,WAAW,EAAE,gBAAgB,CAAC,MAAM;YACpC,eAAe,EAAE,oBAAoB,CAAC,MAAM;YAC5C,SAAS;SACV,EAAE,oBAAoB,CAAC,CAAC;QAEzB,OAAO;YACL,WAAW,EAAE,cAAc;YAC3B,gBAAgB;YAChB,oBAAoB;YACpB,SAAS;YACT,cAAc;SACf,CAAC;IACJ,CAAC;IAED;;OAEG;IACH,eAAe,CAAC,QAAgB;QAC9B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAClD,OAAO,IAAI,EAAE,SAAS,IAAI,EAAE,CAAC;IAC/B,CAAC;IAED;;OAEG;IACH,aAAa,CAAC,QAAgB;QAC5B,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,CAAC,CAAC;QAClD,OAAO,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,wBAAwB;QACtB,MAAM,MAAM,GAAe,EAAE,CAAC;QAC9B,MAAM,OAAO,GAAG,IAAI,GAAG,EAAU,CAAC;QAClC,MAAM,cAAc,GAAG,IAAI,GAAG,EAAU,CAAC;QAEzC,MAAM,GAAG,GAAG,CAAC,IAAY,EAAE,IAAc,EAAQ,EAAE;YACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YAClB,cAAc,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACzB,IAAI,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;YAEhB,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,IAAI,EAAE,CAAC;gBACT,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;oBACjC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBACtB,GAAG,CAAC,GAAG,EAAE,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC;oBACtB,CAAC;yBAAM,IAAI,cAAc,CAAC,GAAG,CAAC,GAAG,CAAC,EAAE,CAAC;wBACnC,cAAc;wBACd,MAAM,UAAU,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;wBACrC,MAAM,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC,CAAC,CAAC;oBACtC,CAAC;gBACH,CAAC;YACH,CAAC;YAED,cAAc,CAAC,MAAM,CAAC,IAAI,CAAC,CAAC;QAC9B,CAAC,CAAC;QAEF,KAAK,MAAM,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,EAAE,EAAE,CAAC;YAC3C,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,EAAE,CAAC;gBACvB,GAAG,CAAC,IAAI,EAAE,EAAE,CAAC,CAAC;YAChB,CAAC;QACH,CAAC;QAED,OAAO,MAAM,CAAC;IAChB,CAAC;IAED;;OAEG;IACH,iBAAiB,CAAC,QAAgB,EAAE,WAAmB,CAAC;QACtD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;QACpD,MAAM,KAAK,GAAa,CAAC,cAAc,CAAC,CAAC;QAEzC,MAAM,SAAS,GAAG,CAAC,IAAY,EAAE,KAAa,EAAE,MAAc,EAAQ,EAAE;YACtE,IAAI,KAAK,IAAI,QAAQ;gBAAE,OAAO;YAE9B,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,CAAC;YACxC,IAAI,CAAC,IAAI;gBAAE,OAAO;YAElB,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;YAC5B,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;gBACrC,MAAM,MAAM,GAAG,CAAC,KAAK,IAAI,CAAC,MAAM,GAAG,CAAC,CAAC;gBACrC,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAC3C,MAAM,SAAS,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC;gBAE3C,KAAK,CAAC,IAAI,CAAC,GAAG,MAAM,GAAG,SAAS,GAAG,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;gBAC7D,SAAS,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,KAAK,GAAG,CAAC,EAAE,MAAM,GAAG,SAAS,CAAC,CAAC;YACpD,CAAC;QACH,CAAC,CAAC;QAEF,SAAS,CAAC,cAAc,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;QACjC,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;IAC1B,CAAC;IAED;;OAEG;IACH,YAAY,CAAC,QAAgB,EAAE;QAC7B,MAAM,MAAM,GAAoD,EAAE,CAAC;QAEnE,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5C,MAAM,CAAC,IAAI,CAAC;gBACV,IAAI;gBACJ,cAAc,EAAE,IAAI,CAAC,UAAU,CAAC,MAAM;aACvC,CAAC,CAAC;QACL,CAAC;QAED,OAAO,MAAM;aACV,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,cAAc,GAAG,CAAC,CAAC,cAAc,CAAC;aACnD,KAAK,CAAC,CAAC,EAAE,KAAK,CAAC,CAAC;IACrB,CAAC;IAEO,aAAa,CAAC,GAAW;QAC/B,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,WAAW,CAAC,GAAG,EAAE,EAAE,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC;YAE7D,KAAK,MAAM,KAAK,IAAI,OAAO,EAAE,CAAC;gBAC5B,MAAM,QAAQ,GAAG,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,KAAK,CAAC,IAAI,CAAC,CAAC;gBAE5C,IAAI,KAAK,CAAC,WAAW,EAAE,EAAE,CAAC;oBACxB,qCAAqC;oBACrC,IAAI,CAAC,CAAC,cAAc,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,aAAa,EAAE,OAAO,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,EAAE,CAAC;wBAC5F,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;oBAC/B,CAAC;gBACH,CAAC;qBAAM,IAAI,KAAK,CAAC,MAAM,EAAE,IAAI,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,CAAC,CAAC,EAAE,CAAC;oBACvF,IAAI,CAAC,WAAW,CAAC,QAAQ,CAAC,CAAC;gBAC7B,CAAC;YACH,CAAC;QACH,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,kCAAkC;QACpC,CAAC;IACH,CAAC;IAEO,WAAW,CAAC,QAAgB;QAClC,IAAI,CAAC;YACH,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACnD,MAAM,cAAc,GAAG,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACpD,MAAM,OAAO,GAAa,EAAE,CAAC;YAC7B,MAAM,OAAO,GAAa,EAAE,CAAC;YAE7B,yBAAyB;YACzB,MAAM,cAAc,GAAG;gBACrB,sCAAsC;gBACtC,yBAAyB;gBACzB,oCAAoC;gBACpC,wBAAwB,CAAE,SAAS;aACpC,CAAC;YAEF,KAAK,MAAM,OAAO,IAAI,cAAc,EAAE,CAAC;gBACrC,IAAI,KAAK,CAAC;gBACV,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;oBAChD,MAAM,UAAU,GAAG,IAAI,CAAC,iBAAiB,CAAC,cAAc,EAAE,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;oBACpE,IAAI,UAAU,EAAE,CAAC;wBACf,OAAO,CAAC,IAAI,CAAC,UAAU,CAAC,CAAC;wBACzB,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC;4BACpB,MAAM,EAAE,cAAc;4BACtB,MAAM,EAAE,UAAU;4BAClB,IAAI,EAAE,QAAQ;yBACf,CAAC,CAAC;oBACL,CAAC;gBACH,CAAC;YACH,CAAC;YAED,gBAAgB;YAChB,MAAM,aAAa,GAAG,kFAAkF,CAAC;YACzG,IAAI,KAAK,CAAC;YACV,OAAO,CAAC,KAAK,GAAG,aAAa,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC,KAAK,IAAI,EAAE,CAAC;gBACtD,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;YACzB,CAAC;YAED,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,cAAc,EAAE;gBACnC,IAAI,EAAE,cAAc;gBACpB,OAAO;gBACP,OAAO;gBACP,SAAS,EAAE,OAAO;gBAClB,UAAU,EAAE,EAAE,CAAC,sCAAsC;aACtD,CAAC,CAAC;QACL,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,6BAA6B;QAC/B,CAAC;IACH,CAAC;IAEO,iBAAiB;QACvB,KAAK,MAAM,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,IAAI,CAAC,KAAK,CAAC,KAAK,EAAE,CAAC;YAC5C,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,SAAS,EAAE,CAAC;gBACjC,MAAM,OAAO,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,GAAG,CAAC,CAAC;gBAC1C,IAAI,OAAO,IAAI,CAAC,OAAO,CAAC,UAAU,CAAC,QAAQ,CAAC,IAAI,CAAC,EAAE,CAAC;oBAClD,OAAO,CAAC,UAAU,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;gBAChC,CAAC;YACH,CAAC;QACH,CAAC;IACH,CAAC;IAEO,iBAAiB,CAAC,QAAgB,EAAE,UAAkB;QAC5D,0BAA0B;QAC1B,IAAI,UAAU,CAAC,UAAU,CAAC,GAAG,CAAC,EAAE,CAAC;YAC/B,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,QAAQ,CAAC,CAAC;YACnC,IAAI,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,UAAU,CAAC,CAAC;YAE7C,wBAAwB;YACxB,KAAK,MAAM,GAAG,IAAI,IAAI,CAAC,cAAc,EAAE,CAAC;gBACtC,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,GAAG,GAAG,CAAC,EAAE,CAAC;oBAClC,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,GAAG,GAAG,CAAC,CAAC;gBAC5C,CAAC;gBACD,iBAAiB;gBACjB,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,QAAQ,EAAE,QAAQ,GAAG,EAAE,CAAC,CAAC;gBACrD,IAAI,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;oBAC7B,OAAO,IAAI,CAAC,aAAa,CAAC,SAAS,CAAC,CAAC;gBACvC,CAAC;YACH,CAAC;YAED,2BAA2B;YAC3B,IAAI,EAAE,CAAC,UAAU,CAAC,QAAQ,CAAC,EAAE,CAAC;gBAC5B,OAAO,IAAI,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;YACtC,CAAC;QACH,CAAC;QAED,mDAAmD;QACnD,OAAO,IAAI,CAAC;IACd,CAAC;IAEO,aAAa,CAAC,QAAgB;QACpC,OAAO,IAAI,CAAC,QAAQ,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC,OAAO,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACvE,CAAC;IAEO,mBAAmB,CAAC,QAAgB;QAC1C,MAAM,IAAI,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAC5C,OAAO,IAAI,EAAE,UAAU,IAAI,EAAE,CAAC;IAChC,CAAC;IAEO,uBAAuB,CAAC,QAAgB,EAAE,UAAuB,IAAI,GAAG,EAAE;QAChF,IAAI,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC;YAAE,OAAO,EAAE,CAAC;QACrC,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;QAEtB,MAAM,MAAM,GAAG,IAAI,CAAC,mBAAmB,CAAC,QAAQ,CAAC,CAAC;QAClD,MAAM,UAAU,GAAa,CAAC,GAAG,MAAM,CAAC,CAAC;QAEzC,KAAK,MAAM,GAAG,IAAI,MAAM,EAAE,CAAC;YACzB,MAAM,MAAM,GAAG,IAAI,CAAC,uBAAuB,CAAC,GAAG,EAAE,OAAO,CAAC,CAAC;YAC1D,KAAK,MAAM,CAAC,IAAI,MAAM,EAAE,CAAC;gBACvB,IAAI,CAAC,UAAU,CAAC,QAAQ,CAAC,CAAC,CAAC,EAAE,CAAC;oBAC5B,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBACrB,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,UAAU,CAAC;IACpB,CAAC;CACF;AA3UD,8CA2UC"}
@@ -0,0 +1,50 @@
1
+ /**
2
+ * Enhanced MCP Server - All advanced StateCLI tools
3
+ *
4
+ * Includes: file tracking, error recovery, session memory, git integration
5
+ */
6
+ import { StateCLIConfig } from './types';
7
+ export declare class EnhancedStateCLIMCPServer {
8
+ private server;
9
+ private statecli;
10
+ private fileTracker;
11
+ private errorRecovery;
12
+ private sessionMemory;
13
+ private gitIntegration;
14
+ private testAwareness;
15
+ private dependencyTracker;
16
+ private rollbackPreview;
17
+ private crossFileImpact;
18
+ constructor(config?: Partial<StateCLIConfig>);
19
+ private setupHandlers;
20
+ private handleReplay;
21
+ private handleUndo;
22
+ private handleCheckpoint;
23
+ private handleLog;
24
+ private handleTrack;
25
+ private handleTrackFile;
26
+ private handleFileHistory;
27
+ private handleAnalyzeError;
28
+ private handleAutoRecover;
29
+ private handleSafeExecute;
30
+ private handleMemoryQuery;
31
+ private handleRecentActivity;
32
+ private handleSessionInfo;
33
+ private handleGitStatus;
34
+ private handleGitHistory;
35
+ private handleGitCheckpoint;
36
+ private handleRunTests;
37
+ private handleTestImpact;
38
+ private handleSuggestTests;
39
+ private handleAnalyzeDependencies;
40
+ private handleDependencyTree;
41
+ private handleFindCircular;
42
+ private handlePreviewUndo;
43
+ private handleSimulateUndo;
44
+ private handlePredictImpact;
45
+ private handleIsSafe;
46
+ private handleSafeChangeOrder;
47
+ run(): Promise<void>;
48
+ close(): void;
49
+ }
50
+ //# sourceMappingURL=enhanced-mcp-server.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"enhanced-mcp-server.d.ts","sourceRoot":"","sources":["../src/enhanced-mcp-server.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAkBH,OAAO,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AA4VzC,qBAAa,yBAAyB;IACpC,OAAO,CAAC,MAAM,CAAS;IACvB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,WAAW,CAAc;IACjC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,iBAAiB,CAAoB;IAC7C,OAAO,CAAC,eAAe,CAAkB;IACzC,OAAO,CAAC,eAAe,CAAkB;gBAE7B,MAAM,CAAC,EAAE,OAAO,CAAC,cAAc,CAAC;IAmB5C,OAAO,CAAC,aAAa;IA6FrB,OAAO,CAAC,YAAY;IAKpB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,SAAS;IAKjB,OAAO,CAAC,WAAW;IAMnB,OAAO,CAAC,eAAe;IAKvB,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,kBAAkB;IAO1B,OAAO,CAAC,iBAAiB;IAMzB,OAAO,CAAC,iBAAiB;IAkBzB,OAAO,CAAC,iBAAiB;IAczB,OAAO,CAAC,oBAAoB;IAK5B,OAAO,CAAC,iBAAiB;IAiBzB,OAAO,CAAC,eAAe;IAgBvB,OAAO,CAAC,gBAAgB;IAMxB,OAAO,CAAC,mBAAmB;IAM3B,OAAO,CAAC,cAAc;IAKtB,OAAO,CAAC,gBAAgB;IAKxB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,yBAAyB;IAMjC,OAAO,CAAC,oBAAoB;IAM5B,OAAO,CAAC,kBAAkB;IAe1B,OAAO,CAAC,iBAAiB;IAKzB,OAAO,CAAC,kBAAkB;IAM1B,OAAO,CAAC,mBAAmB;IAW3B,OAAO,CAAC,YAAY;IAUpB,OAAO,CAAC,qBAAqB;IAMvB,GAAG,IAAI,OAAO,CAAC,IAAI,CAAC;IAM1B,KAAK,IAAI,IAAI;CAId"}