aurix-ai 2.3.1 → 2.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.
@@ -46,6 +46,7 @@ export declare class AgentLoop {
46
46
  getResearchMode(): ResearchDepth;
47
47
  runResearch(query: string): AsyncGenerator<AgentEvent>;
48
48
  getMessages(): Message[];
49
+ setMessages(msgs: Message[]): void;
49
50
  clearHistory(): void;
50
51
  setProvider(config: Partial<AurixConfig>): void;
51
52
  getModel(): string;
@@ -1 +1 @@
1
- {"version":3,"file":"AgentLoop.d.ts","sourceRoot":"","sources":["../../src/agent/AgentLoop.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAoEzD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAK;gBAErC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY;IAYvD,gBAAgB,IAAI,OAAO;IAQ3B,YAAY,IAAI,OAAO;IAIvB,SAAS,IAAI,IAAI;IAIjB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAIjC,eAAe;IAIf,aAAa,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAanJ,SAAS,IAAI,WAAW;IAIjB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC;YAid/D,aAAa;IAyB5B,eAAe,IAAI,aAAa;IAIzB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC;IAgC7D,WAAW,IAAI,OAAO,EAAE;IAIxB,YAAY,IAAI,IAAI;IAKpB,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAW/C,QAAQ,IAAI,MAAM;IAIlB,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,YAAY;IAI/B,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAQtC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;CAcxC"}
1
+ {"version":3,"file":"AgentLoop.d.ts","sourceRoot":"","sources":["../../src/agent/AgentLoop.ts"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAE/C,OAAO,KAAK,EAAY,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAE/D,OAAO,EAAe,WAAW,EAAE,MAAM,mBAAmB,CAAC;AAC7D,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAGzD,OAAO,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEjD,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,qBAAqB,CAAC;AAoEzD,MAAM,WAAW,UAAU;IACzB,IAAI,EAAE,MAAM,GAAG,YAAY,GAAG,UAAU,GAAG,OAAO,GAAG,MAAM,GAAG,OAAO,GAAG,SAAS,GAAG,UAAU,CAAC;IAC/F,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;CACpC;AAED,qBAAa,SAAS;IACpB,OAAO,CAAC,QAAQ,CAAW;IAC3B,OAAO,CAAC,QAAQ,CAAe;IAC/B,OAAO,CAAC,MAAM,CAAc;IAC5B,OAAO,CAAC,QAAQ,CAAiB;IACjC,OAAO,CAAC,aAAa,CAAQ;IAC7B,OAAO,CAAC,cAAc,CAAS;IAC/B,OAAO,CAAC,UAAU,CAAC,CAAmB;IACtC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,YAAY,CAAe;IACnC,OAAO,CAAC,gBAAgB,CAAC,CAAmB;IAC5C,OAAO,CAAC,WAAW,CAAS;IAC5B,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,mBAAmB,CAAK;IAChC,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,oBAAoB,CAAK;gBAErC,MAAM,EAAE,WAAW,EAAE,QAAQ,EAAE,YAAY;IAYvD,gBAAgB,IAAI,OAAO;IAQ3B,YAAY,IAAI,OAAO;IAIvB,SAAS,IAAI,IAAI;IAIjB,gBAAgB,CAAC,CAAC,EAAE,MAAM,GAAG,IAAI;IAIjC,eAAe;IAIf,aAAa,IAAI;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC;QAAC,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,MAAM,EAAE,MAAM,CAAC,MAAM,EAAE,MAAM,CAAC,CAAC;QAAC,QAAQ,EAAE,MAAM,CAAC;QAAC,SAAS,EAAE,MAAM,CAAA;KAAE;IAanJ,SAAS,IAAI,WAAW;IAIjB,GAAG,CAAC,WAAW,EAAE,MAAM,EAAE,MAAM,CAAC,EAAE,MAAM,EAAE,GAAG,cAAc,CAAC,UAAU,CAAC;YAid/D,aAAa;IAyB5B,eAAe,IAAI,aAAa;IAIzB,WAAW,CAAC,KAAK,EAAE,MAAM,GAAG,cAAc,CAAC,UAAU,CAAC;IAgC7D,WAAW,IAAI,OAAO,EAAE;IAIxB,WAAW,CAAC,IAAI,EAAE,OAAO,EAAE,GAAG,IAAI;IAOlC,YAAY,IAAI,IAAI;IAKpB,WAAW,CAAC,MAAM,EAAE,OAAO,CAAC,WAAW,CAAC,GAAG,IAAI;IAW/C,QAAQ,IAAI,MAAM;IAIlB,eAAe,IAAI,MAAM;IAIzB,eAAe,IAAI,YAAY;IAI/B,WAAW,CAAC,SAAS,EAAE,MAAM,GAAG,MAAM;IAQtC,WAAW,CAAC,SAAS,CAAC,EAAE,MAAM,GAAG,MAAM;CAcxC"}
@@ -611,6 +611,12 @@ export class AgentLoop {
611
611
  getMessages() {
612
612
  return [...this.messages];
613
613
  }
614
+ setMessages(msgs) {
615
+ const system = this.messages[0];
616
+ this.messages = system && system.role === 'system' && (msgs.length === 0 || msgs[0].role !== 'system')
617
+ ? [system, ...msgs]
618
+ : [...msgs];
619
+ }
614
620
  clearHistory() {
615
621
  const system = this.messages[0];
616
622
  this.messages = [system];
@@ -1 +1 @@
1
- {"version":3,"file":"AgentLoop.js","sourceRoot":"","sources":["../../src/agent/AgentLoop.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"AgentLoop.js","sourceRoot":"","sources":["../../src/agent/AgentLoop.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,32 @@
1
+ export interface FileBackup {
2
+ backupFileName: string | null;
3
+ version: number;
4
+ }
5
+ export interface Snapshot {
6
+ checkpointId: string;
7
+ fileBackups: Record<string, FileBackup>;
8
+ timestamp: number;
9
+ }
10
+ export declare class CheckpointEngine {
11
+ private sessionId;
12
+ private dir;
13
+ private state;
14
+ constructor(sessionId: string);
15
+ private statePath;
16
+ private load;
17
+ private save;
18
+ private ensureDir;
19
+ private backupName;
20
+ private backupPath;
21
+ trackBeforeEdit(filePath: string): void;
22
+ private nullVersions;
23
+ private differs;
24
+ commit(checkpointId: string): void;
25
+ hasSnapshot(checkpointId: string): boolean;
26
+ private findSnapshot;
27
+ changedSince(checkpointId: string): number;
28
+ restore(checkpointId: string): string[];
29
+ }
30
+ export declare function getCheckpointEngine(): CheckpointEngine | null;
31
+ export declare function initCheckpointEngine(sessionId: string): CheckpointEngine;
32
+ //# sourceMappingURL=Checkpoint.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkpoint.d.ts","sourceRoot":"","sources":["../../src/agent/Checkpoint.ts"],"names":[],"mappings":"AAcA,MAAM,WAAW,UAAU;IACzB,cAAc,EAAE,MAAM,GAAG,IAAI,CAAC;IAC9B,OAAO,EAAE,MAAM,CAAC;CACjB;AACD,MAAM,WAAW,QAAQ;IACvB,YAAY,EAAE,MAAM,CAAC;IACrB,WAAW,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAC;IACxC,SAAS,EAAE,MAAM,CAAC;CACnB;AAQD,qBAAa,gBAAgB;IAC3B,OAAO,CAAC,SAAS,CAAS;IAC1B,OAAO,CAAC,GAAG,CAAS;IACpB,OAAO,CAAC,KAAK,CAA0E;gBAE3E,SAAS,EAAE,MAAM;IAM7B,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,IAAI;IAcZ,OAAO,CAAC,IAAI;IAeZ,OAAO,CAAC,SAAS;IAIjB,OAAO,CAAC,UAAU;IAKlB,OAAO,CAAC,UAAU;IAMlB,eAAe,CAAC,QAAQ,EAAE,MAAM,GAAG,IAAI;IAgCvC,OAAO,CAAC,YAAY,CAAqB;IAGzC,OAAO,CAAC,OAAO;IAef,MAAM,CAAC,YAAY,EAAE,MAAM,GAAG,IAAI;IAelC,WAAW,CAAC,YAAY,EAAE,MAAM,GAAG,OAAO;IAI1C,OAAO,CAAC,YAAY;IAQpB,YAAY,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM;IAiB1C,OAAO,CAAC,YAAY,EAAE,MAAM,GAAG,MAAM,EAAE;CAqBxC;AAGD,wBAAgB,mBAAmB,IAAI,gBAAgB,GAAG,IAAI,CAE7D;AACD,wBAAgB,oBAAoB,CAAC,SAAS,EAAE,MAAM,GAAG,gBAAgB,CAGxE"}
@@ -0,0 +1,200 @@
1
+ import * as fs from 'fs';
2
+ import * as path from 'path';
3
+ import * as os from 'os';
4
+ import { createHash } from 'crypto';
5
+ // Lightweight file-history engine for the rewind feature. A "checkpoint" is
6
+ // keyed by a user-message id. We track every file BEFORE it is edited (so the
7
+ // pre-edit bytes are captured), then a snapshot records which backup version
8
+ // represents each tracked file at that point. Restore replays a snapshot to
9
+ // disk. Backups are content-addressed copies — no git, no temp worktrees.
10
+ const HISTORY_ROOT = path.join(os.homedir(), '.aurix', 'file-history');
11
+ const MAX_SNAPSHOTS = 100;
12
+ export class CheckpointEngine {
13
+ sessionId;
14
+ dir;
15
+ state = { snapshots: [], trackedFiles: new Set(), versions: {} };
16
+ constructor(sessionId) {
17
+ this.sessionId = sessionId;
18
+ this.dir = path.join(HISTORY_ROOT, sessionId);
19
+ this.load();
20
+ }
21
+ statePath() {
22
+ return path.join(this.dir, 'snapshots.json');
23
+ }
24
+ load() {
25
+ try {
26
+ const p = this.statePath();
27
+ if (!fs.existsSync(p))
28
+ return;
29
+ const raw = JSON.parse(fs.readFileSync(p, 'utf-8'));
30
+ this.state.snapshots = raw.snapshots || [];
31
+ this.state.trackedFiles = new Set(raw.trackedFiles || []);
32
+ this.state.versions = raw.versions || {};
33
+ this.nullVersions = new Set(raw.nullVersions || []);
34
+ }
35
+ catch {
36
+ // corrupt/missing state must never break startup
37
+ }
38
+ }
39
+ save() {
40
+ try {
41
+ this.ensureDir();
42
+ const data = {
43
+ snapshots: this.state.snapshots,
44
+ trackedFiles: Array.from(this.state.trackedFiles),
45
+ versions: this.state.versions,
46
+ nullVersions: Array.from(this.nullVersions),
47
+ };
48
+ fs.writeFileSync(this.statePath(), JSON.stringify(data));
49
+ }
50
+ catch {
51
+ // persistence is best-effort
52
+ }
53
+ }
54
+ ensureDir() {
55
+ if (!fs.existsSync(this.dir))
56
+ fs.mkdirSync(this.dir, { recursive: true });
57
+ }
58
+ backupName(filePath, version) {
59
+ const hash = createHash('sha256').update(filePath).digest('hex').slice(0, 16);
60
+ return `${hash}@v${version}`;
61
+ }
62
+ backupPath(name) {
63
+ return path.join(this.dir, name);
64
+ }
65
+ // Capture a file's CURRENT bytes before it is edited. Safe to call repeatedly;
66
+ // only creates a new backup version when the file actually changed.
67
+ trackBeforeEdit(filePath) {
68
+ try {
69
+ const abs = path.resolve(filePath);
70
+ this.state.trackedFiles.add(abs);
71
+ const exists = fs.existsSync(abs);
72
+ const curVersion = this.state.versions[abs] || 0;
73
+ // If we already have a backup and the file is unchanged since it, skip.
74
+ if (curVersion > 0) {
75
+ const prevName = this.backupName(abs, curVersion);
76
+ if (!this.differs(abs, prevName))
77
+ return;
78
+ }
79
+ const nextVersion = curVersion + 1;
80
+ this.ensureDir();
81
+ if (!exists) {
82
+ // record a "did not exist" marker by leaving no file; version maps to null
83
+ this.state.versions[abs] = nextVersion;
84
+ this.nullVersions.add(`${abs}@v${nextVersion}`);
85
+ this.save();
86
+ return;
87
+ }
88
+ const name = this.backupName(abs, nextVersion);
89
+ fs.copyFileSync(abs, this.backupPath(name));
90
+ try {
91
+ fs.chmodSync(this.backupPath(name), fs.statSync(abs).mode);
92
+ }
93
+ catch { }
94
+ this.state.versions[abs] = nextVersion;
95
+ this.save();
96
+ }
97
+ catch {
98
+ // tracking must never break a tool call
99
+ }
100
+ }
101
+ nullVersions = new Set();
102
+ // true if the on-disk file differs from a stored backup (or backup missing).
103
+ differs(filePath, backupName) {
104
+ try {
105
+ const bp = this.backupPath(backupName);
106
+ if (!fs.existsSync(bp))
107
+ return true;
108
+ if (!fs.existsSync(filePath))
109
+ return true;
110
+ const a = fs.readFileSync(filePath);
111
+ const b = fs.readFileSync(bp);
112
+ return !a.equals(b);
113
+ }
114
+ catch {
115
+ return true;
116
+ }
117
+ }
118
+ // Commit a snapshot for the given checkpoint id, recording the current backup
119
+ // version of every tracked file.
120
+ commit(checkpointId) {
121
+ const fileBackups = {};
122
+ for (const f of this.state.trackedFiles) {
123
+ const version = this.state.versions[f] || 0;
124
+ const isNull = this.nullVersions.has(`${f}@v${version}`);
125
+ fileBackups[f] = {
126
+ version,
127
+ backupFileName: isNull || version === 0 ? null : this.backupName(f, version),
128
+ };
129
+ }
130
+ this.state.snapshots.push({ checkpointId, fileBackups, timestamp: Date.now() });
131
+ if (this.state.snapshots.length > MAX_SNAPSHOTS)
132
+ this.state.snapshots.shift();
133
+ this.save();
134
+ }
135
+ hasSnapshot(checkpointId) {
136
+ return this.state.snapshots.some(s => s.checkpointId === checkpointId);
137
+ }
138
+ findSnapshot(checkpointId) {
139
+ for (let i = this.state.snapshots.length - 1; i >= 0; i--) {
140
+ if (this.state.snapshots[i].checkpointId === checkpointId)
141
+ return this.state.snapshots[i];
142
+ }
143
+ return undefined;
144
+ }
145
+ // Count of files that changed between a checkpoint and now (for UI hints).
146
+ changedSince(checkpointId) {
147
+ const snap = this.findSnapshot(checkpointId);
148
+ if (!snap)
149
+ return 0;
150
+ let n = 0;
151
+ for (const f of Object.keys(snap.fileBackups)) {
152
+ const b = snap.fileBackups[f];
153
+ if (b.backupFileName === null) {
154
+ if (fs.existsSync(f))
155
+ n++;
156
+ }
157
+ else if (this.differs(f, b.backupFileName)) {
158
+ n++;
159
+ }
160
+ }
161
+ return n;
162
+ }
163
+ // Restore disk state to the chosen checkpoint. Pure side-effect; snapshots are
164
+ // not popped, so the user can rewind repeatedly. Returns changed file paths.
165
+ restore(checkpointId) {
166
+ const snap = this.findSnapshot(checkpointId);
167
+ if (!snap)
168
+ return [];
169
+ const changed = [];
170
+ for (const f of Object.keys(snap.fileBackups)) {
171
+ const b = snap.fileBackups[f];
172
+ try {
173
+ if (b.backupFileName === null) {
174
+ if (fs.existsSync(f)) {
175
+ fs.unlinkSync(f);
176
+ changed.push(f);
177
+ }
178
+ continue;
179
+ }
180
+ if (this.differs(f, b.backupFileName)) {
181
+ fs.copyFileSync(this.backupPath(b.backupFileName), f);
182
+ changed.push(f);
183
+ }
184
+ }
185
+ catch {
186
+ // skip files that can't be restored
187
+ }
188
+ }
189
+ return changed;
190
+ }
191
+ }
192
+ let engine = null;
193
+ export function getCheckpointEngine() {
194
+ return engine;
195
+ }
196
+ export function initCheckpointEngine(sessionId) {
197
+ engine = new CheckpointEngine(sessionId);
198
+ return engine;
199
+ }
200
+ //# sourceMappingURL=Checkpoint.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Checkpoint.js","sourceRoot":"","sources":["../../src/agent/Checkpoint.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/cli/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAgBzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQzD,UAAU,QAAQ;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,mBAw9C3D"}
1
+ {"version":3,"file":"App.d.ts","sourceRoot":"","sources":["../../src/cli/App.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAoD,MAAM,OAAO,CAAC;AAiBzE,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,oBAAoB,CAAC;AAEtD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,sBAAsB,CAAC;AAQzD,UAAU,QAAQ;IAChB,MAAM,EAAE,WAAW,CAAC;IACpB,QAAQ,EAAE,YAAY,CAAC;IACvB,QAAQ,CAAC,EAAE,MAAM,CAAC;CACnB;AAED,wBAAgB,GAAG,CAAC,EAAE,MAAM,EAAE,QAAQ,EAAE,QAAQ,EAAE,EAAE,QAAQ,mBAyhD3D"}
package/dist/cli/App.js CHANGED
@@ -11,6 +11,7 @@ import { StatusBar } from './StatusBar.js';
11
11
  import { PermissionPrompt } from './PermissionPrompt.js';
12
12
  import { LoginModal } from './LoginModal.js';
13
13
  import { ConnectModal } from './ConnectModal.js';
14
+ import { RewindPicker } from './RewindPicker.js';
14
15
  import { WhatsAppModal } from './WhatsAppModal.js';
15
16
  import { theme, switchTheme, ALL_THEME_NAMES, setBorderStyle } from './theme.js';
16
17
  import { createSlashCommands, findCommand, formatCommandHelp, parseSlash } from './commands.js';
@@ -42,6 +43,7 @@ export function App({ config, registry, resumeId }) {
42
43
  const [permissionMode, setPermissionMode] = useState(registry.getPermissionMode() === 'bypass' ? 'bypass' : 'ask');
43
44
  const agentRef = React.useRef(null);
44
45
  const [toast, setToast] = useState(null);
46
+ const [showRewind, setShowRewind] = useState(false);
45
47
  const toastTimer = React.useRef(null);
46
48
  const pendingImagesRef = React.useRef([]);
47
49
  const showToast = useCallback((msg) => {
@@ -80,6 +82,11 @@ export function App({ config, registry, resumeId }) {
80
82
  }, [renderer]);
81
83
  if (!agentRef.current) {
82
84
  agentRef.current = new AgentLoop(config, registry);
85
+ try {
86
+ const { initCheckpointEngine } = require('../agent/Checkpoint.js');
87
+ initCheckpointEngine(resumeId || `sess_${Date.now()}`);
88
+ }
89
+ catch { }
83
90
  }
84
91
  const resumedRef = React.useRef(false);
85
92
  const resumeSessionIdRef = React.useRef(resumeId);
@@ -191,6 +198,42 @@ export function App({ config, registry, resumeId }) {
191
198
  return;
192
199
  }
193
200
  });
201
+ const handleRewind = useCallback(async (checkpointId, mode) => {
202
+ setShowRewind(false);
203
+ let restoredText = '';
204
+ // 1. Restore conversation: truncate messages back to the chosen checkpoint.
205
+ if (mode === 'both' || mode === 'conversation') {
206
+ setMessages(prev => {
207
+ const idx = prev.findIndex(m => m.checkpointId === checkpointId);
208
+ if (idx < 0)
209
+ return prev;
210
+ restoredText = prev[idx].content;
211
+ return prev.slice(0, idx);
212
+ });
213
+ try {
214
+ const trimmed = agent.getMessages();
215
+ const cut = trimmed.findIndex((m) => m.content && m.content.includes(restoredText));
216
+ if (cut > 0)
217
+ agent.setMessages?.(trimmed.slice(0, cut));
218
+ }
219
+ catch { }
220
+ }
221
+ // 2. Restore code: replay the file snapshot to disk.
222
+ let fileNote = '';
223
+ if (mode === 'both' || mode === 'code') {
224
+ try {
225
+ const { getCheckpointEngine } = await import('../agent/Checkpoint.js');
226
+ const changed = getCheckpointEngine()?.restore(checkpointId) || [];
227
+ fileNote = changed.length ? ` Restored ${changed.length} file(s).` : ' No file changes to restore.';
228
+ }
229
+ catch { }
230
+ }
231
+ setMessages(prev => [...prev, {
232
+ role: 'system',
233
+ content: `⟲ Rewound to an earlier point.${fileNote}`,
234
+ timestamp: new Date(),
235
+ }]);
236
+ }, [agent]);
194
237
  const handleSubmit = useCallback(async (text) => {
195
238
  if (isProcessing)
196
239
  return;
@@ -1183,11 +1226,18 @@ Supervisor auto-routes to the best specialist(s) for each task.`);
1183
1226
  }]);
1184
1227
  return;
1185
1228
  }
1229
+ const checkpointId = `cp_${Date.now()}_${Math.random().toString(36).slice(2, 8)}`;
1186
1230
  setMessages(prev => [...prev, {
1187
1231
  role: 'user',
1188
1232
  content: outboundText,
1189
1233
  timestamp: new Date(),
1234
+ checkpointId,
1190
1235
  }]);
1236
+ try {
1237
+ const { getCheckpointEngine } = await import('../agent/Checkpoint.js');
1238
+ getCheckpointEngine()?.commit(checkpointId);
1239
+ }
1240
+ catch { }
1191
1241
  if (showBanner)
1192
1242
  setShowBanner(false);
1193
1243
  setScrollOffset(0);
@@ -1288,7 +1338,13 @@ Supervisor auto-routes to the best specialist(s) for each task.`);
1288
1338
  renderer.clearSelection?.();
1289
1339
  }
1290
1340
  catch { }
1291
- }, children: [_jsx("box", { flexGrow: 1, minHeight: 0, flexDirection: "column", children: isHome ? (_jsxs("box", { flexGrow: 1, alignItems: "center", paddingLeft: 2, paddingRight: 2, flexDirection: "column", children: [_jsx("box", { flexGrow: 1, minHeight: 0 }), _jsx("box", { flexShrink: 0, flexDirection: "column", alignItems: "center", children: _jsx("text", { fg: theme.primary, children: logoLines().join('\n') }) }), _jsx("box", { height: 1, minHeight: 0, flexShrink: 1 }), _jsx("box", { width: "100%", maxWidth: promptW, paddingTop: 1, flexShrink: 0, children: _jsx(InputBox, { onSubmit: handleSubmit, disabled: false, commands: commands, home: true, model: agent.getModel(), contextPct: ctxStats.estimatedPct, cwd: process.cwd(), mode: mode, onModeCycle: cycleMode, onExit: doExit }) }), _jsx("box", { flexGrow: 1, minHeight: 0 }), _jsxs("box", { width: "100%", flexShrink: 0, justifyContent: "space-between", paddingX: 2, children: [_jsx("text", { fg: theme.textMuted, children: process.cwd().replace(/^\/root\//, '~/') }), _jsxs("text", { fg: theme.textMuted, children: ["v", require('../../package.json').version] })] })] })) : (_jsxs("box", { flexDirection: "row", flexGrow: 1, minHeight: 0, children: [_jsxs("box", { flexDirection: "column", flexGrow: 1, flexShrink: 1, minHeight: 0, children: [_jsxs("box", { flexDirection: "column", flexGrow: 1, flexShrink: 1, minHeight: 0, children: [_jsx(ChatArea, { messages: messages, isProcessing: isProcessing, activeTool: activeTool, scrollOffset: scrollOffset }), permissionPrompt && (_jsx(PermissionPrompt, { request: permissionPrompt.request, onResolve: (reply) => {
1341
+ }, children: [_jsx("box", { flexGrow: 1, minHeight: 0, flexDirection: "column", children: isHome ? (_jsxs("box", { flexGrow: 1, alignItems: "center", paddingLeft: 2, paddingRight: 2, flexDirection: "column", children: [_jsx("box", { flexGrow: 1, minHeight: 0 }), _jsx("box", { flexShrink: 0, flexDirection: "column", alignItems: "center", children: _jsx("text", { fg: theme.primary, children: logoLines().join('\n') }) }), _jsx("box", { height: 1, minHeight: 0, flexShrink: 1 }), _jsx("box", { width: "100%", maxWidth: promptW, paddingTop: 1, flexShrink: 0, children: _jsx(InputBox, { onSubmit: handleSubmit, disabled: false, commands: commands, home: true, model: agent.getModel(), contextPct: ctxStats.estimatedPct, cwd: process.cwd(), mode: mode, onModeCycle: cycleMode, onExit: doExit, onRewind: () => {
1342
+ if (messages.some(m => m.role === 'user' && m.checkpointId)) {
1343
+ setShowRewind(true);
1344
+ return true;
1345
+ }
1346
+ return false;
1347
+ } }) }), _jsx("box", { flexGrow: 1, minHeight: 0 }), _jsxs("box", { width: "100%", flexShrink: 0, justifyContent: "space-between", paddingX: 2, children: [_jsx("text", { fg: theme.textMuted, children: process.cwd().replace(/^\/root\//, '~/') }), _jsxs("text", { fg: theme.textMuted, children: ["v", require('../../package.json').version] })] })] })) : (_jsxs("box", { flexDirection: "row", flexGrow: 1, minHeight: 0, children: [_jsxs("box", { flexDirection: "column", flexGrow: 1, flexShrink: 1, minHeight: 0, children: [_jsxs("box", { flexDirection: "column", flexGrow: 1, flexShrink: 1, minHeight: 0, children: [_jsx(ChatArea, { messages: messages, isProcessing: isProcessing, activeTool: activeTool, scrollOffset: scrollOffset }), permissionPrompt && (_jsx(PermissionPrompt, { request: permissionPrompt.request, onResolve: (reply) => {
1292
1348
  const resolve = permissionPrompt.resolve;
1293
1349
  setPermissionPrompt(null);
1294
1350
  resolve(reply);
@@ -1315,7 +1371,7 @@ Supervisor auto-routes to the best specialist(s) for each task.`);
1315
1371
  content: `Login updated.\n Base URL: ${newBaseUrl || '(unchanged)'}\n API Key: ${newApiKey ? newApiKey.slice(0, 8) + '...' : '(skipped)'}\n Model: ${newModel || agent.getModel()}`,
1316
1372
  timestamp: new Date(),
1317
1373
  }]);
1318
- }, onCancel: () => setShowLogin(false) })), connectModal && (_jsx(ConnectModal, { platform: connectModal, onSubmit: async (token) => {
1374
+ }, onCancel: () => setShowLogin(false) })), showRewind && (_jsx(RewindPicker, { messages: messages, onRestore: handleRewind, onCancel: () => setShowRewind(false) })), connectModal && (_jsx(ConnectModal, { platform: connectModal, onSubmit: async (token) => {
1319
1375
  const platform = connectModal;
1320
1376
  setConnectModal(null);
1321
1377
  try {
@@ -1378,6 +1434,12 @@ Supervisor auto-routes to the best specialist(s) for each task.`);
1378
1434
  timestamp: new Date(),
1379
1435
  }]);
1380
1436
  }
1381
- } })), _jsx(InputBox, { onSubmit: handleSubmit, disabled: isProcessing || !!permissionPrompt || showLogin || !!connectModal || showWhatsApp, commands: commands, model: agent.getModel(), contextPct: ctxStats.estimatedPct, cwd: process.cwd(), mode: mode, onModeCycle: cycleMode, onExit: doExit })] }), _jsx("box", { flexShrink: 0, children: _jsx(StatusBar, { model: agent.getModel(), provider: agent.getProviderName(), researchMode: researchMode, cwd: process.cwd() }) })] }), _jsxs("box", { flexDirection: "column", width: 28, backgroundColor: theme.bgPanel, border: ["left"], borderColor: theme.border, paddingX: 1, paddingY: 1, flexShrink: 0, children: [_jsxs("box", { flexDirection: "column", children: [_jsx("text", { fg: theme.textMuted, attributes: TextAttributes.BOLD, children: "context" }), _jsxs("box", { marginTop: 1, children: [_jsx("text", { fg: barColor, children: barStr }), _jsxs("text", { fg: theme.textMuted, children: [' ', tokenStats.pct, "%"] })] }), _jsx("box", { children: _jsxs("text", { fg: theme.textMuted, children: [fmtTok(tokenStats.total), " tokens"] }) })] }), _jsxs("box", { flexDirection: "column", marginTop: 1, children: [_jsx("text", { fg: theme.textMuted, attributes: TextAttributes.BOLD, children: "tokens" }), _jsxs("box", { marginTop: 1, children: [_jsx("text", { fg: theme.secondary, children: "\u2191 " }), _jsx("text", { fg: theme.text, children: fmtTok(tokenStats.input) })] }), _jsxs("box", { children: [_jsx("text", { fg: theme.primary, children: "\u2193 " }), _jsx("text", { fg: theme.text, children: fmtTok(tokenStats.output) })] })] }), _jsxs("box", { flexDirection: "column", marginTop: 1, children: [_jsx("text", { fg: theme.textMuted, attributes: TextAttributes.BOLD, children: "model" }), _jsx("box", { marginTop: 1, children: _jsx("text", { fg: theme.text, children: agent.getModel() }) })] }), _jsxs("box", { flexDirection: "column", marginTop: 1, children: [_jsx("text", { fg: theme.textMuted, attributes: TextAttributes.BOLD, children: "info" }), _jsxs("box", { marginTop: 1, children: [_jsx("text", { fg: theme.textMuted, children: "provider " }), _jsx("text", { fg: theme.text, children: agent.getProviderName() })] }), _jsxs("box", { children: [_jsx("text", { fg: theme.textMuted, children: "depth " }), _jsx("text", { fg: researchMode === 'ultra' || researchMode === 'max' ? theme.accent : theme.text, children: researchMode })] }), _jsxs("box", { children: [_jsx("text", { fg: theme.textMuted, children: "messages " }), _jsx("text", { fg: theme.text, children: ctxStats.messageCount })] }), _jsxs("box", { children: [_jsx("text", { fg: theme.textMuted, children: "tools " }), _jsx("text", { fg: theme.text, children: toolCount })] })] })] })] })) }), toast && (_jsx("box", { position: "absolute", bottom: 2, left: Math.max(0, Math.floor((termWidth - toast.length - 4) / 2)), zIndex: 100, children: _jsx("box", { backgroundColor: theme.bgElement, paddingX: 2, paddingY: 0, border: ["top", "bottom", "left", "right"], borderColor: theme.border, children: _jsx("text", { fg: theme.ok, children: toast }) }) }))] }));
1437
+ } })), _jsx(InputBox, { onSubmit: handleSubmit, disabled: isProcessing || !!permissionPrompt || showLogin || !!connectModal || showWhatsApp, commands: commands, model: agent.getModel(), contextPct: ctxStats.estimatedPct, cwd: process.cwd(), mode: mode, onModeCycle: cycleMode, onExit: doExit, onRewind: () => {
1438
+ if (messages.some(m => m.role === 'user' && m.checkpointId)) {
1439
+ setShowRewind(true);
1440
+ return true;
1441
+ }
1442
+ return false;
1443
+ } })] }), _jsx("box", { flexShrink: 0, children: _jsx(StatusBar, { model: agent.getModel(), provider: agent.getProviderName(), researchMode: researchMode, cwd: process.cwd() }) })] }), _jsxs("box", { flexDirection: "column", width: 28, backgroundColor: theme.bgPanel, border: ["left"], borderColor: theme.border, paddingX: 1, paddingY: 1, flexShrink: 0, children: [_jsxs("box", { flexDirection: "column", children: [_jsx("text", { fg: theme.textMuted, attributes: TextAttributes.BOLD, children: "context" }), _jsxs("box", { marginTop: 1, children: [_jsx("text", { fg: barColor, children: barStr }), _jsxs("text", { fg: theme.textMuted, children: [' ', tokenStats.pct, "%"] })] }), _jsx("box", { children: _jsxs("text", { fg: theme.textMuted, children: [fmtTok(tokenStats.total), " tokens"] }) })] }), _jsxs("box", { flexDirection: "column", marginTop: 1, children: [_jsx("text", { fg: theme.textMuted, attributes: TextAttributes.BOLD, children: "tokens" }), _jsxs("box", { marginTop: 1, children: [_jsx("text", { fg: theme.secondary, children: "\u2191 " }), _jsx("text", { fg: theme.text, children: fmtTok(tokenStats.input) })] }), _jsxs("box", { children: [_jsx("text", { fg: theme.primary, children: "\u2193 " }), _jsx("text", { fg: theme.text, children: fmtTok(tokenStats.output) })] })] }), _jsxs("box", { flexDirection: "column", marginTop: 1, children: [_jsx("text", { fg: theme.textMuted, attributes: TextAttributes.BOLD, children: "model" }), _jsx("box", { marginTop: 1, children: _jsx("text", { fg: theme.text, children: agent.getModel() }) })] }), _jsxs("box", { flexDirection: "column", marginTop: 1, children: [_jsx("text", { fg: theme.textMuted, attributes: TextAttributes.BOLD, children: "info" }), _jsxs("box", { marginTop: 1, children: [_jsx("text", { fg: theme.textMuted, children: "provider " }), _jsx("text", { fg: theme.text, children: agent.getProviderName() })] }), _jsxs("box", { children: [_jsx("text", { fg: theme.textMuted, children: "depth " }), _jsx("text", { fg: researchMode === 'ultra' || researchMode === 'max' ? theme.accent : theme.text, children: researchMode })] }), _jsxs("box", { children: [_jsx("text", { fg: theme.textMuted, children: "messages " }), _jsx("text", { fg: theme.text, children: ctxStats.messageCount })] }), _jsxs("box", { children: [_jsx("text", { fg: theme.textMuted, children: "tools " }), _jsx("text", { fg: theme.text, children: toolCount })] })] })] })] })) }), toast && (_jsx("box", { position: "absolute", bottom: 2, left: Math.max(0, Math.floor((termWidth - toast.length - 4) / 2)), zIndex: 100, children: _jsx("box", { backgroundColor: theme.bgElement, paddingX: 2, paddingY: 0, border: ["top", "bottom", "left", "right"], borderColor: theme.border, children: _jsx("text", { fg: theme.ok, children: toast }) }) }))] }));
1382
1444
  }
1383
1445
  //# sourceMappingURL=App.js.map