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.
- package/README.md +93 -19
- package/dist/auto-tracker.d.ts +18 -0
- package/dist/auto-tracker.d.ts.map +1 -0
- package/dist/auto-tracker.js +88 -0
- package/dist/auto-tracker.js.map +1 -0
- package/dist/cli.js +6 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/diff.d.ts +3 -0
- package/dist/commands/diff.d.ts.map +1 -0
- package/dist/commands/diff.js +65 -0
- package/dist/commands/diff.js.map +1 -0
- package/dist/commands/quick-undo.d.ts +3 -0
- package/dist/commands/quick-undo.d.ts.map +1 -0
- package/dist/commands/quick-undo.js +102 -0
- package/dist/commands/quick-undo.js.map +1 -0
- package/dist/commands/watch.d.ts +3 -0
- package/dist/commands/watch.d.ts.map +1 -0
- package/dist/commands/watch.js +120 -0
- package/dist/commands/watch.js.map +1 -0
- package/dist/cross-file-impact.d.ts +85 -0
- package/dist/cross-file-impact.d.ts.map +1 -0
- package/dist/cross-file-impact.js +338 -0
- package/dist/cross-file-impact.js.map +1 -0
- package/dist/dependency-tracker.d.ts +78 -0
- package/dist/dependency-tracker.d.ts.map +1 -0
- package/dist/dependency-tracker.js +334 -0
- package/dist/dependency-tracker.js.map +1 -0
- package/dist/enhanced-mcp-server.d.ts +15 -0
- package/dist/enhanced-mcp-server.d.ts.map +1 -1
- package/dist/enhanced-mcp-server.js +240 -1
- package/dist/enhanced-mcp-server.js.map +1 -1
- package/dist/file-watcher.d.ts +25 -0
- package/dist/file-watcher.d.ts.map +1 -0
- package/dist/file-watcher.js +141 -0
- package/dist/file-watcher.js.map +1 -0
- package/dist/rollback-preview.d.ts +77 -0
- package/dist/rollback-preview.d.ts.map +1 -0
- package/dist/rollback-preview.js +244 -0
- package/dist/rollback-preview.js.map +1 -0
- package/dist/statecli.d.ts +12 -0
- package/dist/statecli.d.ts.map +1 -1
- package/dist/statecli.js +41 -0
- package/dist/statecli.js.map +1 -1
- package/dist/test-awareness.d.ts +85 -0
- package/dist/test-awareness.d.ts.map +1 -0
- package/dist/test-awareness.js +329 -0
- package/dist/test-awareness.js.map +1 -0
- package/package.json +20 -16
package/README.md
CHANGED
|
@@ -1,40 +1,114 @@
|
|
|
1
|
-
# StateCLI -
|
|
1
|
+
# StateCLI - Memory + Self-Awareness Layer for AI Agents
|
|
2
2
|
|
|
3
|
-
>
|
|
3
|
+
> Give AI agents the ability to remember, replay, and undo their actions.
|
|
4
4
|
|
|
5
|
-
**
|
|
5
|
+
**Agent Infrastructure** | **Memory Layer** | **Self-Awareness** | **Undo Capability**
|
|
6
6
|
|
|
7
7
|
---
|
|
8
8
|
|
|
9
|
-
## What This
|
|
9
|
+
## What This Is
|
|
10
10
|
|
|
11
|
-
StateCLI
|
|
11
|
+
StateCLI is the **memory and self-awareness layer** for AI coding agents.
|
|
12
12
|
|
|
13
|
-
|
|
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
|
-
**
|
|
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
|
-
|
|
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
|
-
|
|
31
|
-
Solution: statecli_undo(entity) → Rollback instantly
|
|
75
|
+
👉 **[Full Developer Guide](./DEVELOPER_GUIDE.md)**
|
|
32
76
|
|
|
33
|
-
|
|
34
|
-
|
|
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
|
-
|
|
37
|
-
|
|
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":"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"}
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -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 @@
|
|
|
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 @@
|
|
|
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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"}
|