statecli-mcp-server 0.2.0 → 0.4.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 (48) hide show
  1. package/README.md +93 -19
  2. package/dist/auto-tracker.d.ts +18 -0
  3. package/dist/auto-tracker.d.ts.map +1 -0
  4. package/dist/auto-tracker.js +88 -0
  5. package/dist/auto-tracker.js.map +1 -0
  6. package/dist/cli.js +6 -0
  7. package/dist/cli.js.map +1 -1
  8. package/dist/commands/diff.d.ts +3 -0
  9. package/dist/commands/diff.d.ts.map +1 -0
  10. package/dist/commands/diff.js +65 -0
  11. package/dist/commands/diff.js.map +1 -0
  12. package/dist/commands/quick-undo.d.ts +3 -0
  13. package/dist/commands/quick-undo.d.ts.map +1 -0
  14. package/dist/commands/quick-undo.js +102 -0
  15. package/dist/commands/quick-undo.js.map +1 -0
  16. package/dist/commands/watch.d.ts +3 -0
  17. package/dist/commands/watch.d.ts.map +1 -0
  18. package/dist/commands/watch.js +120 -0
  19. package/dist/commands/watch.js.map +1 -0
  20. package/dist/cross-file-impact.d.ts +85 -0
  21. package/dist/cross-file-impact.d.ts.map +1 -0
  22. package/dist/cross-file-impact.js +338 -0
  23. package/dist/cross-file-impact.js.map +1 -0
  24. package/dist/dependency-tracker.d.ts +78 -0
  25. package/dist/dependency-tracker.d.ts.map +1 -0
  26. package/dist/dependency-tracker.js +334 -0
  27. package/dist/dependency-tracker.js.map +1 -0
  28. package/dist/enhanced-mcp-server.d.ts +15 -0
  29. package/dist/enhanced-mcp-server.d.ts.map +1 -1
  30. package/dist/enhanced-mcp-server.js +240 -1
  31. package/dist/enhanced-mcp-server.js.map +1 -1
  32. package/dist/file-watcher.d.ts +25 -0
  33. package/dist/file-watcher.d.ts.map +1 -0
  34. package/dist/file-watcher.js +141 -0
  35. package/dist/file-watcher.js.map +1 -0
  36. package/dist/rollback-preview.d.ts +77 -0
  37. package/dist/rollback-preview.d.ts.map +1 -0
  38. package/dist/rollback-preview.js +244 -0
  39. package/dist/rollback-preview.js.map +1 -0
  40. package/dist/statecli.d.ts +12 -0
  41. package/dist/statecli.d.ts.map +1 -1
  42. package/dist/statecli.js +41 -0
  43. package/dist/statecli.js.map +1 -1
  44. package/dist/test-awareness.d.ts +85 -0
  45. package/dist/test-awareness.d.ts.map +1 -0
  46. package/dist/test-awareness.js +329 -0
  47. package/dist/test-awareness.js.map +1 -0
  48. package/package.json +20 -16
package/README.md CHANGED
@@ -1,40 +1,114 @@
1
- # StateCLI - MCP Server for State Replay & Self-Debugging
1
+ # StateCLI - Memory + Self-Awareness Layer for AI Agents
2
2
 
3
- > **For AI Agents:** Memory, replay, and undo capability for your actions.
3
+ > Give AI agents the ability to remember, replay, and undo their actions.
4
4
 
5
- **MCP Server** | **State Management** | **Agent Self-Debugging** | **Rollback Capability**
5
+ **Agent Infrastructure** | **Memory Layer** | **Self-Awareness** | **Undo Capability**
6
6
 
7
7
  ---
8
8
 
9
- ## What This Does (For AI Agents)
9
+ ## What This Is
10
10
 
11
- StateCLI gives AI agents the ability to:
11
+ StateCLI is the **memory and self-awareness layer** for AI coding agents.
12
12
 
13
- **See what you just did** - Replay your actions step-by-step
14
- ✅ **Undo mistakes** - Rollback when something goes wrong
15
- ✅ **Track history** - View all your past actions
16
- ✅ **Create checkpoints** - Save state before risky operations
13
+ It gives agents three critical capabilities they lack:
17
14
 
18
- **Keywords for discovery:** state-management, debugging, replay, time-travel, undo, mcp-server, ai-agent-tools, self-debugging, agent-memory, rollback, introspection
15
+ 🧠 **Memory** - Remember what they did (log, replay)
16
+ ⏮️ **Undo** - Fix mistakes instantly (checkpoint, rollback)
17
+ 👁️ **Self-Awareness** - See their impact (track changes)
18
+
19
+ **This isn't a dev tool. It's agent infrastructure.**
19
20
 
20
21
  ---
21
22
 
22
23
  ## Why AI Agents Need This
23
24
 
24
- **Common Agent Problems:**
25
+ AI agents are powerful but blind. They:
26
+ - ❌ Don't remember what they just changed
27
+ - ❌ Can't undo when they break things
28
+ - ❌ Have no awareness of their impact
29
+
30
+ StateCLI fixes this:
31
+
32
+ ```
33
+ Agent Thought: "I changed something but don't know what"
34
+ → statecli_replay(entity) → See exact changes
35
+
36
+ Agent Thought: "I broke something and need to undo"
37
+ → statecli_undo(entity) → Rollback instantly
38
+
39
+ Agent Thought: "I want to try something risky"
40
+ → statecli_checkpoint(entity) → Save first, rollback if needed
41
+
42
+ Agent Thought: "I need to understand my past behavior"
43
+ → statecli_log(entity) → View complete history
44
+ ```
45
+
46
+ ---
47
+
48
+ ---
49
+
50
+ ## Two Ways to Use StateCLI
51
+
52
+ ### 1. For Developers: Auto-Tracking Mode 🔥
53
+
54
+ **Start watching your project:**
55
+ ```bash
56
+ statecli watch start --auto-checkpoint
57
+ ```
25
58
 
59
+ Now StateCLI automatically:
60
+ - ✅ Tracks every file save
61
+ - ✅ Creates checkpoints every 15 min
62
+ - ✅ Lets you undo any mistake
63
+ - ✅ Shows what changed recently
64
+
65
+ **See what changed:**
66
+ ```bash
67
+ statecli diff --time 5m
68
+ ```
69
+
70
+ **Undo mistakes:**
71
+ ```bash
72
+ statecli undo
26
73
  ```
27
- Problem: "I changed something but don't know what"
28
- Solution: statecli_replay(entity) → See exact changes
29
74
 
30
- Problem: "I broke something and need to undo"
31
- Solution: statecli_undo(entity) → Rollback instantly
75
+ 👉 **[Full Developer Guide](./DEVELOPER_GUIDE.md)**
32
76
 
33
- Problem: "I want to try something risky"
34
- Solution: statecli_checkpoint(entity) → Save first, rollback if needed
77
+ ---
78
+
79
+ ### 2. For AI Agents: MCP Tools
80
+
81
+ **5 core tools for agent memory & self-awareness:**
82
+
83
+ - `statecli_replay` - Show what the agent just did
84
+ - `statecli_undo` - Rollback mistakes
85
+ - `statecli_checkpoint` - Save state before risky ops
86
+ - `statecli_log` - View complete history
87
+ - `statecli_track` - Track important state changes
88
+
89
+ **MCP Setup:**
90
+ ```json
91
+ {
92
+ "mcpServers": {
93
+ "statecli": {
94
+ "command": "npx",
95
+ "args": ["-y", "statecli-mcp-server"]
96
+ }
97
+ }
98
+ }
99
+ ```
100
+
101
+ ---
102
+
103
+ ## Quick Install
104
+
105
+ ```bash
106
+ # Global install
107
+ npm install -g statecli-mcp-server
35
108
 
36
- Problem: "I need to understand my past behavior"
37
- Solution: statecli_log(entity) → View complete history
109
+ # Start auto-tracking
110
+ cd your-project
111
+ statecli watch start --auto-checkpoint
38
112
  ```
39
113
 
40
114
  ---
@@ -0,0 +1,18 @@
1
+ import { StateCLI } from './statecli';
2
+ export interface AutoTrackerConfig {
3
+ trackGitCommits?: boolean;
4
+ trackNpmInstalls?: boolean;
5
+ trackTestRuns?: boolean;
6
+ autoCheckpointBeforeRisky?: boolean;
7
+ }
8
+ export declare class AutoTracker {
9
+ private stateCLI;
10
+ private config;
11
+ constructor(stateCLI: StateCLI, config?: AutoTrackerConfig);
12
+ trackGitCommit(): Promise<void>;
13
+ trackNpmInstall(packageName?: string): Promise<void>;
14
+ trackTestRun(testCommand: string, passed: boolean, output?: string): Promise<void>;
15
+ checkpointBeforeRisky(operation: string): Promise<string>;
16
+ wrapRiskyOperation<T>(operation: string, fn: () => Promise<T>): Promise<T>;
17
+ }
18
+ //# sourceMappingURL=auto-tracker.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-tracker.d.ts","sourceRoot":"","sources":["../src/auto-tracker.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAMtC,MAAM,WAAW,iBAAiB;IAC9B,eAAe,CAAC,EAAE,OAAO,CAAC;IAC1B,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,yBAAyB,CAAC,EAAE,OAAO,CAAC;CACvC;AAED,qBAAa,WAAW;IACpB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,MAAM,CAAoB;gBAEtB,QAAQ,EAAE,QAAQ,EAAE,MAAM,GAAE,iBAAsB;IAWxD,cAAc,IAAI,OAAO,CAAC,IAAI,CAAC;IAsB/B,eAAe,CAAC,WAAW,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAYpD,YAAY,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,CAAC,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC;IAclF,qBAAqB,CAAC,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAYzD,kBAAkB,CAAC,CAAC,EACtB,SAAS,EAAE,MAAM,EACjB,EAAE,EAAE,MAAM,OAAO,CAAC,CAAC,CAAC,GACrB,OAAO,CAAC,CAAC,CAAC;CAiBhB"}
@@ -0,0 +1,88 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.AutoTracker = void 0;
4
+ const child_process_1 = require("child_process");
5
+ const util_1 = require("util");
6
+ const execAsync = (0, util_1.promisify)(child_process_1.exec);
7
+ class AutoTracker {
8
+ stateCLI;
9
+ config;
10
+ constructor(stateCLI, config = {}) {
11
+ this.stateCLI = stateCLI;
12
+ this.config = {
13
+ trackGitCommits: true,
14
+ trackNpmInstalls: true,
15
+ trackTestRuns: true,
16
+ autoCheckpointBeforeRisky: true,
17
+ ...config
18
+ };
19
+ }
20
+ async trackGitCommit() {
21
+ if (!this.config.trackGitCommits)
22
+ return;
23
+ try {
24
+ const { stdout: hash } = await execAsync('git rev-parse HEAD');
25
+ const { stdout: message } = await execAsync('git log -1 --pretty=%B');
26
+ const { stdout: files } = await execAsync('git diff-tree --no-commit-id --name-only -r HEAD');
27
+ this.stateCLI.track('git', 'commit', {
28
+ action: 'commit',
29
+ hash: hash.trim(),
30
+ message: message.trim(),
31
+ files: files.trim().split('\n').filter(f => f),
32
+ timestamp: new Date().toISOString()
33
+ }, 'auto-tracker');
34
+ console.log(`✅ Tracked git commit: ${hash.trim().substring(0, 7)}`);
35
+ }
36
+ catch (error) {
37
+ // Not a git repo or no commits yet
38
+ }
39
+ }
40
+ async trackNpmInstall(packageName) {
41
+ if (!this.config.trackNpmInstalls)
42
+ return;
43
+ this.stateCLI.track('npm', 'install', {
44
+ action: 'install',
45
+ package: packageName || 'all',
46
+ timestamp: new Date().toISOString()
47
+ }, 'auto-tracker');
48
+ console.log(`✅ Tracked npm install: ${packageName || 'all packages'}`);
49
+ }
50
+ async trackTestRun(testCommand, passed, output) {
51
+ if (!this.config.trackTestRuns)
52
+ return;
53
+ this.stateCLI.track('tests', 'run', {
54
+ action: 'test',
55
+ command: testCommand,
56
+ passed,
57
+ output: output?.substring(0, 1000), // Limit output size
58
+ timestamp: new Date().toISOString()
59
+ }, 'auto-tracker');
60
+ console.log(`✅ Tracked test run: ${passed ? 'PASSED' : 'FAILED'}`);
61
+ }
62
+ async checkpointBeforeRisky(operation) {
63
+ if (!this.config.autoCheckpointBeforeRisky) {
64
+ return '';
65
+ }
66
+ const checkpointName = `before-${operation}-${Date.now()}`;
67
+ this.stateCLI.checkpoint('project:current', checkpointName);
68
+ console.log(`💾 Auto-checkpoint before ${operation}: ${checkpointName}`);
69
+ return checkpointName;
70
+ }
71
+ async wrapRiskyOperation(operation, fn) {
72
+ const checkpointName = await this.checkpointBeforeRisky(operation);
73
+ try {
74
+ const result = await fn();
75
+ console.log(`✅ ${operation} completed successfully`);
76
+ return result;
77
+ }
78
+ catch (error) {
79
+ console.error(`❌ ${operation} failed:`, error);
80
+ if (checkpointName) {
81
+ console.log(`💡 You can rollback with: statecli undo --checkpoint ${checkpointName}`);
82
+ }
83
+ throw error;
84
+ }
85
+ }
86
+ }
87
+ exports.AutoTracker = AutoTracker;
88
+ //# sourceMappingURL=auto-tracker.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"auto-tracker.js","sourceRoot":"","sources":["../src/auto-tracker.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -167,6 +167,12 @@ program
167
167
  });
168
168
  await server.run();
169
169
  });
170
+ // Import new commands
171
+ const watch_1 = require("./commands/watch");
172
+ const diff_1 = require("./commands/diff");
173
+ // Register new commands
174
+ (0, watch_1.createWatchCommand)(program);
175
+ (0, diff_1.createDiffCommand)(program);
170
176
  program
171
177
  .command('init')
172
178
  .description('Initialize StateCLI configuration')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAEA,yCAAoC;AACpC,yCAAsC;AAEtC,uCAAyB;AACzB,2CAA6B;AAE7B,SAAS,UAAU;IACjB,MAAM,WAAW,GAAG;QAClB,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,sBAAsB,CAAC;QAChD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC;QACpD,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,CAAC,IAAI,IAAI,OAAO,CAAC,GAAG,CAAC,WAAW,IAAI,EAAE,EAAE,WAAW,EAAE,aAAa,CAAC;KACzF,CAAC;IAEF,KAAK,MAAM,UAAU,IAAI,WAAW,EAAE,CAAC;QACrC,IAAI,CAAC;YACH,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;gBAC9B,MAAM,OAAO,GAAG,EAAE,CAAC,YAAY,CAAC,UAAU,EAAE,OAAO,CAAC,CAAC;gBACrD,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC;YAC7B,CAAC;QACH,CAAC;QAAC,MAAM,CAAC;YACP,+BAA+B;QACjC,CAAC;IACH,CAAC;IAED,OAAO,EAAE,CAAC;AACZ,CAAC;AAED,MAAM,MAAM,GAAG,UAAU,EAAE,CAAC;AAC5B,MAAM,QAAQ,GAAG,IAAI,mBAAQ,CAAC,MAAM,CAAC,CAAC;AAEtC,MAAM,OAAO,GAAG,IAAI,mBAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,OAAO,CAAC,OAAO,CAAC,CAAC;AAEpB,OAAO;KACJ,OAAO,CAAC,iBAAiB,CAAC;KAC1B,WAAW,CAAC,oCAAoC,CAAC;KACjD,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;KAChD,MAAM,CAAC,CAAC,MAAc,EAAE,OAA2B,EAAE,EAAE;IACtD,MAAM,MAAM,GAAG,QAAQ,CAAC,MAAM,CAAC,MAAM,EAAE,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,EAAE,CAAC,CAAC;IACjE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,eAAe,CAAC;KACxB,WAAW,CAAC,kCAAkC,CAAC;KAC/C,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,EAAE,GAAG,CAAC;KAC7D,MAAM,CAAC,CAAC,MAAc,EAAE,OAA0B,EAAE,EAAE;IACrD,MAAM,MAAM,GAAG,QAAQ,CAAC,IAAI,CAAC,MAAM,EAAE,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC;IAClE,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,4BAA4B,CAAC;KACrC,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,UAAU,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACjD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,yBAAyB,CAAC;KAClC,WAAW,CAAC,+BAA+B,CAAC;KAC5C,MAAM,CAAC,CAAC,MAAc,EAAE,IAAY,EAAE,EAAE;IACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,iBAAiB,CAAC,MAAM,EAAE,IAAI,CAAC,CAAC;IACxD,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,cAAc,CAAC;KACvB,WAAW,CAAC,yCAAyC,CAAC;KACtD,MAAM,CAAC,qBAAqB,EAAE,yCAAyC,CAAC;KACxE,MAAM,CAAC,qBAAqB,EAAE,iBAAiB,CAAC;KAChD,MAAM,CAAC,qBAAqB,EAAE,2BAA2B,CAAC;KAC1D,MAAM,CAAC,CAAC,MAAc,EAAE,OAA2D,EAAE,EAAE;IACtF,MAAM,MAAM,GAAG,QAAQ,CAAC,GAAG,CAAC,MAAM,EAAE;QAClC,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,QAAQ,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC,CAAC,CAAC,SAAS;KAC/D,CAAC,CAAC;IACH,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC7C,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,+BAA+B,CAAC;KACxC,WAAW,CAAC,sBAAsB,CAAC;KACnC,cAAc,CAAC,mBAAmB,EAAE,2BAA2B,CAAC;KAChE,MAAM,CAAC,qBAAqB,EAAE,yBAAyB,EAAE,KAAK,CAAC;KAC/D,MAAM,CAAC,CAAC,UAAkB,EAAE,QAAgB,EAAE,OAAwC,EAAE,EAAE;IACzF,IAAI,CAAC;QACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,MAAM,MAAM,GAAG,QAAQ,CAAC,KAAK,CAAC,UAAU,EAAE,QAAQ,EAAE,KAAK,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;QAC1E,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,MAAM,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC/C,CAAC;IAAC,OAAO,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,KAAK,CAAC,0BAA0B,CAAC,CAAC;QAC1C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC;IACD,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,gBAAgB,CAAC;KACzB,WAAW,CAAC,gCAAgC,CAAC;KAC7C,MAAM,CAAC,CAAC,MAAc,EAAE,EAAE;IACzB,MAAM,KAAK,GAAG,QAAQ,CAAC,eAAe,CAAC,MAAM,CAAC,CAAC;IAC/C,IAAI,KAAK,EAAE,CAAC;QACV,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC1D,CAAC;SAAM,CAAC;QACN,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,gBAAgB,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3F,CAAC;IACD,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,2BAA2B,CAAC;KACxC,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,QAAQ,GAAG,QAAQ,CAAC,YAAY,EAAE,CAAC;IACzC,OAAO,CAAC,GAAG,CAAC,IAAI,CAAC,SAAS,CAAC,EAAE,QAAQ,EAAE,KAAK,EAAE,QAAQ,CAAC,MAAM,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;IAC3E,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,sBAAsB,CAAC;KACnC,MAAM,CAAC,KAAK,IAAI,EAAE;IACjB,MAAM,EAAE,iBAAiB,EAAE,GAAG,wDAAa,cAAc,GAAC,CAAC;IAC3D,MAAM,MAAM,GAAG,IAAI,iBAAiB,CAAC,MAAM,CAAC,CAAC;IAE7C,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,GAAG,EAAE;QACxB,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,OAAO,CAAC,EAAE,CAAC,SAAS,EAAE,GAAG,EAAE;QACzB,MAAM,CAAC,KAAK,EAAE,CAAC;QACf,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;IAEH,MAAM,MAAM,CAAC,GAAG,EAAE,CAAC;AACrB,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,MAAM,CAAC;KACf,WAAW,CAAC,mCAAmC,CAAC;KAChD,MAAM,CAAC,GAAG,EAAE;IACX,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,OAAO,CAAC,GAAG,EAAE,EAAE,WAAW,CAAC,CAAC;IACxD,MAAM,UAAU,GAAG,IAAI,CAAC,IAAI,CAAC,SAAS,EAAE,aAAa,CAAC,CAAC;IAEvD,IAAI,CAAC,EAAE,CAAC,UAAU,CAAC,SAAS,CAAC,EAAE,CAAC;QAC9B,EAAE,CAAC,SAAS,CAAC,SAAS,EAAE,EAAE,SAAS,EAAE,IAAI,EAAE,CAAC,CAAC;IAC/C,CAAC;IAED,IAAI,EAAE,CAAC,UAAU,CAAC,UAAU,CAAC,EAAE,CAAC;QAC9B,OAAO,CAAC,GAAG,CAAC,iCAAiC,EAAE,UAAU,CAAC,CAAC;IAC7D,CAAC;SAAM,CAAC;QACN,MAAM,aAAa,GAAG;YACpB,OAAO,EAAE;gBACP,IAAI,EAAE,OAAO;gBACb,IAAI,EAAE,oBAAoB;aAC3B;YACD,SAAS,EAAE;gBACT,OAAO,EAAE,IAAI;gBACb,QAAQ,EAAE,CAAC,GAAG,CAAC;aAChB;YACD,SAAS,EAAE;gBACT,IAAI,EAAE,EAAE;gBACR,mBAAmB,EAAE,IAAI;aAC1B;SACF,CAAC;QAEF,EAAE,CAAC,aAAa,CAAC,UAAU,EAAE,IAAI,CAAC,SAAS,CAAC,aAAa,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;QACrE,OAAO,CAAC,GAAG,CAAC,0BAA0B,EAAE,UAAU,CAAC,CAAC;IACtD,CAAC;IAED,QAAQ,CAAC,KAAK,EAAE,CAAC;AACnB,CAAC,CAAC,CAAC;AAEL,OAAO,CAAC,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createDiffCommand(program: Command): void;
3
+ //# sourceMappingURL=diff.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAGpC,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAyDxD"}
@@ -0,0 +1,65 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.createDiffCommand = createDiffCommand;
4
+ const statecli_1 = require("../statecli");
5
+ function createDiffCommand(program) {
6
+ program
7
+ .command('diff')
8
+ .description('Show what changed recently')
9
+ .option('-t, --time <duration>', 'Show changes in last X time (e.g., 5m, 1h, 2d)', '1h')
10
+ .option('-f, --file <path>', 'Show changes for specific file')
11
+ .option('-l, --limit <number>', 'Limit number of changes', '20')
12
+ .action(async (options) => {
13
+ const stateCLI = new statecli_1.StateCLI();
14
+ // Parse time duration
15
+ const duration = parseDuration(options.time);
16
+ const since = new Date(Date.now() - duration);
17
+ let entity = 'project:current';
18
+ if (options.file) {
19
+ entity = `file:${options.file}`;
20
+ }
21
+ const history = stateCLI.log(entity, { limit: parseInt(options.limit) });
22
+ // Filter by time
23
+ const recentChanges = history.changes.filter((change) => {
24
+ const changeTime = new Date(change.timestamp);
25
+ return changeTime >= since;
26
+ });
27
+ if (recentChanges.length === 0) {
28
+ console.log(`No changes in the last ${options.time}`);
29
+ return;
30
+ }
31
+ console.log(`\n📊 Changes in the last ${options.time}:\n`);
32
+ recentChanges.forEach((change, index) => {
33
+ const time = new Date(change.timestamp).toLocaleTimeString();
34
+ const state = change.after || change;
35
+ console.log(`${index + 1}. [${time}] ${state.action || 'change'}`);
36
+ if (state.path) {
37
+ console.log(` 📁 ${state.path}`);
38
+ }
39
+ if (state.description) {
40
+ console.log(` 💬 ${state.description}`);
41
+ }
42
+ if (state.files && Array.isArray(state.files)) {
43
+ console.log(` 📝 Files: ${state.files.join(', ')}`);
44
+ }
45
+ console.log('');
46
+ });
47
+ console.log(`Total: ${recentChanges.length} changes\n`);
48
+ });
49
+ }
50
+ function parseDuration(duration) {
51
+ const match = duration.match(/^(\d+)([smhd])$/);
52
+ if (!match) {
53
+ throw new Error('Invalid duration format. Use: 5m, 1h, 2d');
54
+ }
55
+ const value = parseInt(match[1]);
56
+ const unit = match[2];
57
+ const multipliers = {
58
+ 's': 1000,
59
+ 'm': 60 * 1000,
60
+ 'h': 60 * 60 * 1000,
61
+ 'd': 24 * 60 * 60 * 1000
62
+ };
63
+ return value * multipliers[unit];
64
+ }
65
+ //# sourceMappingURL=diff.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"diff.js","sourceRoot":"","sources":["../../src/commands/diff.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createQuickUndoCommand(program: Command): void;
3
+ //# sourceMappingURL=quick-undo.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quick-undo.d.ts","sourceRoot":"","sources":["../../src/commands/quick-undo.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAIpC,wBAAgB,sBAAsB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA0D7D"}
@@ -0,0 +1,102 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createQuickUndoCommand = createQuickUndoCommand;
37
+ const statecli_1 = require("../statecli");
38
+ const readline = __importStar(require("readline"));
39
+ function createQuickUndoCommand(program) {
40
+ program
41
+ .command('undo')
42
+ .description('Quick undo last change')
43
+ .argument('[file]', 'File to undo (optional, defaults to last change)')
44
+ .option('-t, --time <duration>', 'Undo to X time ago (e.g., 5m, 1h)')
45
+ .option('-c, --checkpoint <name>', 'Undo to specific checkpoint')
46
+ .option('-s, --steps <number>', 'Number of steps to undo', '1')
47
+ .option('-y, --yes', 'Skip confirmation')
48
+ .action(async (file, options) => {
49
+ const stateCLI = new statecli_1.StateCLI();
50
+ let entity = 'project:current';
51
+ if (file) {
52
+ entity = `file:${file}`;
53
+ }
54
+ // Preview what will be undone
55
+ const preview = stateCLI.previewUndo(entity, parseInt(options.steps));
56
+ console.log('\n🔍 Preview of undo operation:\n');
57
+ console.log(`Entity: ${preview.entity}`);
58
+ console.log(`Steps to undo: ${preview.stepsToUndo}`);
59
+ console.log(`Current state: ${preview.currentStateIndex}`);
60
+ console.log(`Target state: ${preview.targetStateIndex}\n`);
61
+ if (preview.affectedChanges.length > 0) {
62
+ console.log('Changes that will be undone:');
63
+ preview.affectedChanges.forEach((change, index) => {
64
+ const state = change.state;
65
+ console.log(` ${index + 1}. ${state.action || 'change'} - ${new Date(change.timestamp).toLocaleString()}`);
66
+ });
67
+ console.log('');
68
+ }
69
+ // Confirm
70
+ if (!options.yes) {
71
+ const confirmed = await confirm('Do you want to proceed with undo?');
72
+ if (!confirmed) {
73
+ console.log('❌ Undo cancelled');
74
+ return;
75
+ }
76
+ }
77
+ // Perform undo
78
+ const result = stateCLI.undo(entity, parseInt(options.steps));
79
+ console.log('\n✅ Undo completed!');
80
+ console.log(`Rolled back ${result.stepsUndone} step(s)`);
81
+ console.log(result.summary);
82
+ if (result.restoredState) {
83
+ const state = result.restoredState;
84
+ if (state.path) {
85
+ console.log(`📁 Restored: ${state.path}`);
86
+ }
87
+ }
88
+ });
89
+ }
90
+ async function confirm(question) {
91
+ const rl = readline.createInterface({
92
+ input: process.stdin,
93
+ output: process.stdout
94
+ });
95
+ return new Promise((resolve) => {
96
+ rl.question(`${question} (y/N): `, (answer) => {
97
+ rl.close();
98
+ resolve(answer.toLowerCase() === 'y' || answer.toLowerCase() === 'yes');
99
+ });
100
+ });
101
+ }
102
+ //# sourceMappingURL=quick-undo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"quick-undo.js","sourceRoot":"","sources":["../../src/commands/quick-undo.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import { Command } from 'commander';
2
+ export declare function createWatchCommand(program: Command): void;
3
+ //# sourceMappingURL=watch.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.d.ts","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CA2FzD"}
@@ -0,0 +1,120 @@
1
+ "use strict";
2
+ var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
3
+ if (k2 === undefined) k2 = k;
4
+ var desc = Object.getOwnPropertyDescriptor(m, k);
5
+ if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
6
+ desc = { enumerable: true, get: function() { return m[k]; } };
7
+ }
8
+ Object.defineProperty(o, k2, desc);
9
+ }) : (function(o, m, k, k2) {
10
+ if (k2 === undefined) k2 = k;
11
+ o[k2] = m[k];
12
+ }));
13
+ var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {
14
+ Object.defineProperty(o, "default", { enumerable: true, value: v });
15
+ }) : function(o, v) {
16
+ o["default"] = v;
17
+ });
18
+ var __importStar = (this && this.__importStar) || (function () {
19
+ var ownKeys = function(o) {
20
+ ownKeys = Object.getOwnPropertyNames || function (o) {
21
+ var ar = [];
22
+ for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k;
23
+ return ar;
24
+ };
25
+ return ownKeys(o);
26
+ };
27
+ return function (mod) {
28
+ if (mod && mod.__esModule) return mod;
29
+ var result = {};
30
+ if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]);
31
+ __setModuleDefault(result, mod);
32
+ return result;
33
+ };
34
+ })();
35
+ Object.defineProperty(exports, "__esModule", { value: true });
36
+ exports.createWatchCommand = createWatchCommand;
37
+ const statecli_1 = require("../statecli");
38
+ const file_watcher_1 = require("../file-watcher");
39
+ const path = __importStar(require("path"));
40
+ const fs = __importStar(require("fs"));
41
+ function createWatchCommand(program) {
42
+ const watchCmd = program
43
+ .command('watch')
44
+ .description('Watch files and auto-track changes');
45
+ watchCmd
46
+ .command('start')
47
+ .description('Start watching files for changes')
48
+ .option('-p, --path <paths...>', 'Paths to watch (default: current directory)', ['.'])
49
+ .option('-i, --ignore <patterns...>', 'Patterns to ignore')
50
+ .option('--auto-checkpoint', 'Enable auto-checkpoints every 15 minutes')
51
+ .option('--interval <minutes>', 'Checkpoint interval in minutes', '15')
52
+ .action(async (options) => {
53
+ const stateCLI = new statecli_1.StateCLI();
54
+ const watcher = new file_watcher_1.FileWatcher(stateCLI, {
55
+ paths: options.path,
56
+ ignore: options.ignore,
57
+ autoCheckpoint: options.autoCheckpoint,
58
+ checkpointInterval: parseInt(options.interval)
59
+ });
60
+ // Save watcher PID for stop command
61
+ const pidFile = path.join(process.cwd(), '.statecli-watcher.pid');
62
+ fs.writeFileSync(pidFile, process.pid.toString());
63
+ console.log('🚀 StateCLI auto-tracking started!');
64
+ console.log(' Watching:', options.path.join(', '));
65
+ if (options.autoCheckpoint) {
66
+ console.log(` Auto-checkpoint: every ${options.interval} minutes`);
67
+ }
68
+ console.log('\n Press Ctrl+C to stop\n');
69
+ watcher.start();
70
+ // Handle graceful shutdown
71
+ process.on('SIGINT', () => {
72
+ console.log('\n\n🛑 Stopping watcher...');
73
+ watcher.stop();
74
+ fs.unlinkSync(pidFile);
75
+ process.exit(0);
76
+ });
77
+ // Keep process alive
78
+ await new Promise(() => { });
79
+ });
80
+ watchCmd
81
+ .command('stop')
82
+ .description('Stop the file watcher')
83
+ .action(() => {
84
+ const pidFile = path.join(process.cwd(), '.statecli-watcher.pid');
85
+ if (!fs.existsSync(pidFile)) {
86
+ console.log('❌ No watcher is running');
87
+ return;
88
+ }
89
+ const pid = parseInt(fs.readFileSync(pidFile, 'utf-8'));
90
+ try {
91
+ process.kill(pid, 'SIGINT');
92
+ fs.unlinkSync(pidFile);
93
+ console.log('✅ Watcher stopped');
94
+ }
95
+ catch (error) {
96
+ console.error('❌ Failed to stop watcher:', error);
97
+ fs.unlinkSync(pidFile);
98
+ }
99
+ });
100
+ watchCmd
101
+ .command('status')
102
+ .description('Check watcher status')
103
+ .action(() => {
104
+ const pidFile = path.join(process.cwd(), '.statecli-watcher.pid');
105
+ if (!fs.existsSync(pidFile)) {
106
+ console.log('⭕ Watcher is not running');
107
+ return;
108
+ }
109
+ const pid = parseInt(fs.readFileSync(pidFile, 'utf-8'));
110
+ try {
111
+ process.kill(pid, 0); // Check if process exists
112
+ console.log('✅ Watcher is running (PID:', pid + ')');
113
+ }
114
+ catch (error) {
115
+ console.log('❌ Watcher process not found (stale PID file)');
116
+ fs.unlinkSync(pidFile);
117
+ }
118
+ });
119
+ }
120
+ //# sourceMappingURL=watch.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"watch.js","sourceRoot":"","sources":["../../src/commands/watch.ts"],"names":[],"mappings":"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"}