@staticpayload/zai-code 1.0.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 (100) hide show
  1. package/LICENSE +678 -0
  2. package/README.md +115 -0
  3. package/bin/zcode +3 -0
  4. package/dist/apply.d.ts +44 -0
  5. package/dist/apply.d.ts.map +1 -0
  6. package/dist/apply.js +307 -0
  7. package/dist/apply.js.map +1 -0
  8. package/dist/auth.d.ts +9 -0
  9. package/dist/auth.d.ts.map +1 -0
  10. package/dist/auth.js +170 -0
  11. package/dist/auth.js.map +1 -0
  12. package/dist/cli.d.ts +3 -0
  13. package/dist/cli.d.ts.map +1 -0
  14. package/dist/cli.js +179 -0
  15. package/dist/cli.js.map +1 -0
  16. package/dist/commands.d.ts +15 -0
  17. package/dist/commands.d.ts.map +1 -0
  18. package/dist/commands.js +560 -0
  19. package/dist/commands.js.map +1 -0
  20. package/dist/config.d.ts +9 -0
  21. package/dist/config.d.ts.map +1 -0
  22. package/dist/config.js +97 -0
  23. package/dist/config.js.map +1 -0
  24. package/dist/context/context_builder.d.ts +29 -0
  25. package/dist/context/context_builder.d.ts.map +1 -0
  26. package/dist/context/context_builder.js +307 -0
  27. package/dist/context/context_builder.js.map +1 -0
  28. package/dist/context/project_memory.d.ts +14 -0
  29. package/dist/context/project_memory.d.ts.map +1 -0
  30. package/dist/context/project_memory.js +142 -0
  31. package/dist/context/project_memory.js.map +1 -0
  32. package/dist/doctor.d.ts +2 -0
  33. package/dist/doctor.d.ts.map +1 -0
  34. package/dist/doctor.js +3 -0
  35. package/dist/doctor.js.map +1 -0
  36. package/dist/git.d.ts +10 -0
  37. package/dist/git.d.ts.map +1 -0
  38. package/dist/git.js +90 -0
  39. package/dist/git.js.map +1 -0
  40. package/dist/history.d.ts +14 -0
  41. package/dist/history.d.ts.map +1 -0
  42. package/dist/history.js +103 -0
  43. package/dist/history.js.map +1 -0
  44. package/dist/interactive.d.ts +6 -0
  45. package/dist/interactive.d.ts.map +1 -0
  46. package/dist/interactive.js +83 -0
  47. package/dist/interactive.js.map +1 -0
  48. package/dist/orchestrator.d.ts +11 -0
  49. package/dist/orchestrator.d.ts.map +1 -0
  50. package/dist/orchestrator.js +135 -0
  51. package/dist/orchestrator.js.map +1 -0
  52. package/dist/planner.d.ts +22 -0
  53. package/dist/planner.d.ts.map +1 -0
  54. package/dist/planner.js +259 -0
  55. package/dist/planner.js.map +1 -0
  56. package/dist/profiles.d.ts +16 -0
  57. package/dist/profiles.d.ts.map +1 -0
  58. package/dist/profiles.js +80 -0
  59. package/dist/profiles.js.map +1 -0
  60. package/dist/rollback.d.ts +27 -0
  61. package/dist/rollback.d.ts.map +1 -0
  62. package/dist/rollback.js +154 -0
  63. package/dist/rollback.js.map +1 -0
  64. package/dist/runtime.d.ts +131 -0
  65. package/dist/runtime.d.ts.map +1 -0
  66. package/dist/runtime.js +374 -0
  67. package/dist/runtime.js.map +1 -0
  68. package/dist/session.d.ts +95 -0
  69. package/dist/session.d.ts.map +1 -0
  70. package/dist/session.js +174 -0
  71. package/dist/session.js.map +1 -0
  72. package/dist/settings.d.ts +41 -0
  73. package/dist/settings.d.ts.map +1 -0
  74. package/dist/settings.js +225 -0
  75. package/dist/settings.js.map +1 -0
  76. package/dist/settings_menu.d.ts +2 -0
  77. package/dist/settings_menu.d.ts.map +1 -0
  78. package/dist/settings_menu.js +265 -0
  79. package/dist/settings_menu.js.map +1 -0
  80. package/dist/shell.d.ts +18 -0
  81. package/dist/shell.d.ts.map +1 -0
  82. package/dist/shell.js +128 -0
  83. package/dist/shell.js.map +1 -0
  84. package/dist/task_runner.d.ts +22 -0
  85. package/dist/task_runner.d.ts.map +1 -0
  86. package/dist/task_runner.js +230 -0
  87. package/dist/task_runner.js.map +1 -0
  88. package/dist/ui.d.ts +15 -0
  89. package/dist/ui.d.ts.map +1 -0
  90. package/dist/ui.js +160 -0
  91. package/dist/ui.js.map +1 -0
  92. package/dist/workspace.d.ts +17 -0
  93. package/dist/workspace.d.ts.map +1 -0
  94. package/dist/workspace.js +134 -0
  95. package/dist/workspace.js.map +1 -0
  96. package/dist/workspace_model.d.ts +45 -0
  97. package/dist/workspace_model.d.ts.map +1 -0
  98. package/dist/workspace_model.js +253 -0
  99. package/dist/workspace_model.js.map +1 -0
  100. package/package.json +45 -0
@@ -0,0 +1,259 @@
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.MAX_REFINE_ITERATIONS = exports.MAX_PLAN_ITERATIONS = void 0;
37
+ exports.runPlannerLoop = runPlannerLoop;
38
+ exports.runGenerateLoop = runGenerateLoop;
39
+ const session_1 = require("./session");
40
+ const runtime_1 = require("./runtime");
41
+ const auth_1 = require("./auth");
42
+ const session_2 = require("./session");
43
+ const path = __importStar(require("path"));
44
+ const context_builder_1 = require("./context/context_builder");
45
+ // Planner configuration
46
+ const MAX_PLAN_ITERATIONS = 5;
47
+ exports.MAX_PLAN_ITERATIONS = MAX_PLAN_ITERATIONS;
48
+ const MAX_REFINE_ITERATIONS = 3;
49
+ exports.MAX_REFINE_ITERATIONS = MAX_REFINE_ITERATIONS;
50
+ // Check if plan is satisfactory (basic heuristics)
51
+ function isPlanSatisfactory(plan) {
52
+ // Plan must have at least one step
53
+ if (!plan || plan.length === 0) {
54
+ return false;
55
+ }
56
+ // Each step must have a description
57
+ return plan.every(step => step.description && step.description.trim().length > 0);
58
+ }
59
+ // Check if generated changes are valid
60
+ function areChangesValid(response) {
61
+ // Must have either files or diffs
62
+ const hasFiles = (response.files?.length ?? 0) > 0;
63
+ const hasDiffs = (response.diffs?.length ?? 0) > 0;
64
+ return hasFiles || hasDiffs;
65
+ }
66
+ // Run bounded planning loop
67
+ async function runPlannerLoop() {
68
+ const session = (0, session_1.getSession)();
69
+ const intent = (0, session_1.getIntent)();
70
+ if (!intent) {
71
+ return {
72
+ success: false,
73
+ iterations: 0,
74
+ plan: null,
75
+ message: 'No intent set. Enter a task first.',
76
+ needsConfirmation: false,
77
+ };
78
+ }
79
+ const apiKey = await (0, auth_1.ensureAuthenticated)();
80
+ let iterations = 0;
81
+ let currentPlan = null;
82
+ // Build context from workspace
83
+ const context = (0, context_builder_1.buildContext)(session.workingDirectory, intent, (0, session_1.getIntentType)() || 'COMMAND', session.openFiles.map(f => path.join(session.workingDirectory, f)));
84
+ const filesContext = (0, context_builder_1.formatContextForModel)(context);
85
+ // Mode constraints
86
+ let modeConstraints = '';
87
+ switch (session.mode) {
88
+ case 'edit':
89
+ modeConstraints = 'Focus on implementing changes. May create, modify, or delete files.';
90
+ break;
91
+ case 'explain':
92
+ modeConstraints = 'Explain code and concepts. No file modifications.';
93
+ break;
94
+ case 'review':
95
+ modeConstraints = 'Analyze and review code. Identify issues and improvements.';
96
+ break;
97
+ case 'debug':
98
+ modeConstraints = 'Focus on finding and fixing bugs. Minimal targeted changes.';
99
+ break;
100
+ }
101
+ // Bounded planning loop
102
+ while (iterations < MAX_PLAN_ITERATIONS) {
103
+ iterations++;
104
+ const instruction = `Create a plan for the following task.
105
+
106
+ Task: ${intent}
107
+ Intent Type: ${(0, session_1.getIntentType)() || 'COMMAND'}
108
+ Mode: ${session.mode}
109
+ Constraints: ${modeConstraints}
110
+
111
+ Working directory: ${session.workingDirectory}
112
+
113
+ ${filesContext ? `Files in context:\n${filesContext}` : 'No files in context.'}
114
+
115
+ ${currentPlan ? `Previous plan needs refinement:\n${currentPlan.map(s => `${s.id}. ${s.description}`).join('\n')}` : ''}
116
+
117
+ Output a plan with numbered steps. Each step should have an id, description, and optionally list affected files.`;
118
+ const result = await (0, runtime_1.execute)({
119
+ instruction,
120
+ schema: session_2.PLAN_SCHEMA,
121
+ enforceSchema: true,
122
+ }, apiKey);
123
+ if (!result.success) {
124
+ return {
125
+ success: false,
126
+ iterations,
127
+ plan: null,
128
+ message: `Planning failed: ${result.error}`,
129
+ needsConfirmation: false,
130
+ };
131
+ }
132
+ const response = result.output;
133
+ if (response.status === 'error') {
134
+ return {
135
+ success: false,
136
+ iterations,
137
+ plan: null,
138
+ message: `Planning failed: ${response.error}`,
139
+ needsConfirmation: false,
140
+ };
141
+ }
142
+ if (response.plan) {
143
+ currentPlan = response.plan.map(step => ({
144
+ id: step.id,
145
+ description: step.description,
146
+ status: 'pending',
147
+ }));
148
+ // Check if plan is satisfactory
149
+ if (isPlanSatisfactory(currentPlan)) {
150
+ (0, session_1.setLastPlan)(currentPlan);
151
+ return {
152
+ success: true,
153
+ iterations,
154
+ plan: currentPlan,
155
+ message: `Plan generated in ${iterations} iteration(s).`,
156
+ needsConfirmation: true,
157
+ };
158
+ }
159
+ }
160
+ // Plan not satisfactory, will refine in next iteration
161
+ console.log(`Iteration ${iterations}: Refining plan...`);
162
+ }
163
+ // Max iterations reached
164
+ if (currentPlan) {
165
+ (0, session_1.setLastPlan)(currentPlan);
166
+ }
167
+ return {
168
+ success: currentPlan !== null,
169
+ iterations,
170
+ plan: currentPlan,
171
+ message: `Max iterations (${MAX_PLAN_ITERATIONS}) reached.`,
172
+ needsConfirmation: currentPlan !== null,
173
+ };
174
+ }
175
+ // Run bounded generation loop
176
+ async function runGenerateLoop() {
177
+ const session = (0, session_1.getSession)();
178
+ const intent = (0, session_1.getIntent)();
179
+ if (!intent) {
180
+ return {
181
+ success: false,
182
+ iterations: 0,
183
+ changes: null,
184
+ message: 'No intent set. Enter a task first.',
185
+ needsConfirmation: false,
186
+ };
187
+ }
188
+ if (!session.lastPlan || session.lastPlan.length === 0) {
189
+ return {
190
+ success: false,
191
+ iterations: 0,
192
+ changes: null,
193
+ message: 'No plan generated. Use /plan first.',
194
+ needsConfirmation: false,
195
+ };
196
+ }
197
+ const apiKey = await (0, auth_1.ensureAuthenticated)();
198
+ let iterations = 0;
199
+ let currentChanges = null;
200
+ // Build context from workspace
201
+ const context = (0, context_builder_1.buildContext)(session.workingDirectory, intent, (0, session_1.getIntentType)() || 'COMMAND', session.openFiles.map(f => path.join(session.workingDirectory, f)));
202
+ const filesContext = (0, context_builder_1.formatContextForModel)(context);
203
+ const planSummary = session.lastPlan.map(step => `${step.id}. ${step.description}`).join('\n');
204
+ // Bounded generation loop
205
+ while (iterations < MAX_REFINE_ITERATIONS) {
206
+ iterations++;
207
+ const instruction = `Execute the following plan and output file changes.
208
+
209
+ Task: ${intent}
210
+
211
+ Plan:
212
+ ${planSummary}
213
+
214
+ Working directory: ${session.workingDirectory}
215
+ Mode: ${session.mode}
216
+
217
+ ${filesContext ? `Files:\n${filesContext}` : ''}
218
+
219
+ ${currentChanges ? 'Previous output was invalid. Output valid file operations.' : ''}
220
+
221
+ Output file operations with exact paths and content. Use status, files array (with path, operation, content), or diffs array.`;
222
+ const result = await (0, runtime_1.execute)({
223
+ instruction,
224
+ enforceSchema: true,
225
+ }, apiKey);
226
+ if (!result.success) {
227
+ return {
228
+ success: false,
229
+ iterations,
230
+ changes: null,
231
+ message: `Generation failed: ${result.error}`,
232
+ needsConfirmation: false,
233
+ };
234
+ }
235
+ const response = result.output;
236
+ if (areChangesValid(response)) {
237
+ (0, session_1.setLastDiff)(response);
238
+ (0, session_1.setPendingActions)(response);
239
+ return {
240
+ success: true,
241
+ iterations,
242
+ changes: response,
243
+ message: `Changes generated in ${iterations} iteration(s).`,
244
+ needsConfirmation: true,
245
+ };
246
+ }
247
+ currentChanges = response;
248
+ console.log(`Iteration ${iterations}: Refining output...`);
249
+ }
250
+ // Max iterations reached
251
+ return {
252
+ success: false,
253
+ iterations,
254
+ changes: currentChanges,
255
+ message: `Max iterations (${MAX_REFINE_ITERATIONS}) reached. No valid changes generated.`,
256
+ needsConfirmation: false,
257
+ };
258
+ }
259
+ //# sourceMappingURL=planner.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"planner.js","sourceRoot":"","sources":["../src/planner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ export interface Profile {
2
+ name: string;
3
+ description: string;
4
+ settings: Partial<{
5
+ model: string;
6
+ contextScope: 'open' | 'touched' | 'full';
7
+ confirmationMode: 'strict' | 'normal';
8
+ maxPlanIterations: number;
9
+ }>;
10
+ }
11
+ export declare const BUILT_IN_PROFILES: Profile[];
12
+ export declare function getProfile(name: string): Profile | null;
13
+ export declare function listProfiles(): Profile[];
14
+ export declare function applyProfile(name: string): boolean;
15
+ export declare function getActiveProfileName(): string | null;
16
+ //# sourceMappingURL=profiles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.d.ts","sourceRoot":"","sources":["../src/profiles.ts"],"names":[],"mappings":"AAEA,MAAM,WAAW,OAAO;IACtB,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,OAAO,CAAC;QAChB,KAAK,EAAE,MAAM,CAAC;QACd,YAAY,EAAE,MAAM,GAAG,SAAS,GAAG,MAAM,CAAC;QAC1C,gBAAgB,EAAE,QAAQ,GAAG,QAAQ,CAAC;QACtC,iBAAiB,EAAE,MAAM,CAAC;KAC3B,CAAC,CAAC;CACJ;AAED,eAAO,MAAM,iBAAiB,EAAE,OAAO,EA+BtC,CAAC;AAEF,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,GAAG,IAAI,CAEvD;AAED,wBAAgB,YAAY,IAAI,OAAO,EAAE,CAExC;AAED,wBAAgB,YAAY,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAqBlD;AAED,wBAAgB,oBAAoB,IAAI,MAAM,GAAG,IAAI,CAgBpD"}
@@ -0,0 +1,80 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.BUILT_IN_PROFILES = void 0;
4
+ exports.getProfile = getProfile;
5
+ exports.listProfiles = listProfiles;
6
+ exports.applyProfile = applyProfile;
7
+ exports.getActiveProfileName = getActiveProfileName;
8
+ const settings_1 = require("./settings");
9
+ exports.BUILT_IN_PROFILES = [
10
+ {
11
+ name: 'safe',
12
+ description: 'Conservative settings, strict confirmation',
13
+ settings: {
14
+ model: 'claude-sonnet-4-20250514',
15
+ contextScope: 'open',
16
+ confirmationMode: 'strict',
17
+ maxPlanIterations: 3,
18
+ },
19
+ },
20
+ {
21
+ name: 'balanced',
22
+ description: 'Default settings for typical use',
23
+ settings: {
24
+ model: 'claude-sonnet-4-20250514',
25
+ contextScope: 'touched',
26
+ confirmationMode: 'strict',
27
+ maxPlanIterations: 5,
28
+ },
29
+ },
30
+ {
31
+ name: 'fast',
32
+ description: 'Faster execution, less confirmation',
33
+ settings: {
34
+ model: 'claude-3-5-haiku-20241022',
35
+ contextScope: 'open',
36
+ confirmationMode: 'normal',
37
+ maxPlanIterations: 3,
38
+ },
39
+ },
40
+ ];
41
+ function getProfile(name) {
42
+ return exports.BUILT_IN_PROFILES.find(p => p.name === name) || null;
43
+ }
44
+ function listProfiles() {
45
+ return exports.BUILT_IN_PROFILES;
46
+ }
47
+ function applyProfile(name) {
48
+ const profile = getProfile(name);
49
+ if (!profile)
50
+ return false;
51
+ const settings = (0, settings_1.loadSettings)();
52
+ if (profile.settings.model) {
53
+ settings.model.current = profile.settings.model;
54
+ }
55
+ if (profile.settings.contextScope) {
56
+ settings.context.scope = profile.settings.contextScope;
57
+ }
58
+ if (profile.settings.confirmationMode) {
59
+ settings.execution.confirmationMode = profile.settings.confirmationMode;
60
+ }
61
+ if (profile.settings.maxPlanIterations !== undefined) {
62
+ settings.execution.maxPlanIterations = profile.settings.maxPlanIterations;
63
+ }
64
+ (0, settings_1.saveSettings)(settings);
65
+ return true;
66
+ }
67
+ function getActiveProfileName() {
68
+ const settings = (0, settings_1.loadSettings)();
69
+ for (const profile of exports.BUILT_IN_PROFILES) {
70
+ const s = profile.settings;
71
+ if ((!s.model || settings.model.current === s.model) &&
72
+ (!s.contextScope || settings.context.scope === s.contextScope) &&
73
+ (!s.confirmationMode || settings.execution.confirmationMode === s.confirmationMode) &&
74
+ (s.maxPlanIterations === undefined || settings.execution.maxPlanIterations === s.maxPlanIterations)) {
75
+ return profile.name;
76
+ }
77
+ }
78
+ return 'custom';
79
+ }
80
+ //# sourceMappingURL=profiles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"profiles.js","sourceRoot":"","sources":["../src/profiles.ts"],"names":[],"mappings":";;;AA8CA,gCAEC;AAED,oCAEC;AAED,oCAqBC;AAED,oDAgBC;AA7FD,yCAAkE;AAarD,QAAA,iBAAiB,GAAc;IAC1C;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,4CAA4C;QACzD,QAAQ,EAAE;YACR,KAAK,EAAE,0BAA0B;YACjC,YAAY,EAAE,MAAM;YACpB,gBAAgB,EAAE,QAAQ;YAC1B,iBAAiB,EAAE,CAAC;SACrB;KACF;IACD;QACE,IAAI,EAAE,UAAU;QAChB,WAAW,EAAE,kCAAkC;QAC/C,QAAQ,EAAE;YACR,KAAK,EAAE,0BAA0B;YACjC,YAAY,EAAE,SAAS;YACvB,gBAAgB,EAAE,QAAQ;YAC1B,iBAAiB,EAAE,CAAC;SACrB;KACF;IACD;QACE,IAAI,EAAE,MAAM;QACZ,WAAW,EAAE,qCAAqC;QAClD,QAAQ,EAAE;YACR,KAAK,EAAE,2BAA2B;YAClC,YAAY,EAAE,MAAM;YACpB,gBAAgB,EAAE,QAAQ;YAC1B,iBAAiB,EAAE,CAAC;SACrB;KACF;CACF,CAAC;AAEF,SAAgB,UAAU,CAAC,IAAY;IACrC,OAAO,yBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,IAAI,IAAI,CAAC;AAC9D,CAAC;AAED,SAAgB,YAAY;IAC1B,OAAO,yBAAiB,CAAC;AAC3B,CAAC;AAED,SAAgB,YAAY,CAAC,IAAY;IACvC,MAAM,OAAO,GAAG,UAAU,CAAC,IAAI,CAAC,CAAC;IACjC,IAAI,CAAC,OAAO;QAAE,OAAO,KAAK,CAAC;IAE3B,MAAM,QAAQ,GAAG,IAAA,uBAAY,GAAE,CAAC;IAEhC,IAAI,OAAO,CAAC,QAAQ,CAAC,KAAK,EAAE,CAAC;QAC3B,QAAQ,CAAC,KAAK,CAAC,OAAO,GAAG,OAAO,CAAC,QAAQ,CAAC,KAAK,CAAC;IAClD,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,YAAY,EAAE,CAAC;QAClC,QAAQ,CAAC,OAAO,CAAC,KAAK,GAAG,OAAO,CAAC,QAAQ,CAAC,YAAY,CAAC;IACzD,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,gBAAgB,EAAE,CAAC;QACtC,QAAQ,CAAC,SAAS,CAAC,gBAAgB,GAAG,OAAO,CAAC,QAAQ,CAAC,gBAAgB,CAAC;IAC1E,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,iBAAiB,KAAK,SAAS,EAAE,CAAC;QACrD,QAAQ,CAAC,SAAS,CAAC,iBAAiB,GAAG,OAAO,CAAC,QAAQ,CAAC,iBAAiB,CAAC;IAC5E,CAAC;IAED,IAAA,uBAAY,EAAC,QAAQ,CAAC,CAAC;IACvB,OAAO,IAAI,CAAC;AACd,CAAC;AAED,SAAgB,oBAAoB;IAClC,MAAM,QAAQ,GAAG,IAAA,uBAAY,GAAE,CAAC;IAEhC,KAAK,MAAM,OAAO,IAAI,yBAAiB,EAAE,CAAC;QACxC,MAAM,CAAC,GAAG,OAAO,CAAC,QAAQ,CAAC;QAC3B,IACE,CAAC,CAAC,CAAC,CAAC,KAAK,IAAI,QAAQ,CAAC,KAAK,CAAC,OAAO,KAAK,CAAC,CAAC,KAAK,CAAC;YAChD,CAAC,CAAC,CAAC,CAAC,YAAY,IAAI,QAAQ,CAAC,OAAO,CAAC,KAAK,KAAK,CAAC,CAAC,YAAY,CAAC;YAC9D,CAAC,CAAC,CAAC,CAAC,gBAAgB,IAAI,QAAQ,CAAC,SAAS,CAAC,gBAAgB,KAAK,CAAC,CAAC,gBAAgB,CAAC;YACnF,CAAC,CAAC,CAAC,iBAAiB,KAAK,SAAS,IAAI,QAAQ,CAAC,SAAS,CAAC,iBAAiB,KAAK,CAAC,CAAC,iBAAiB,CAAC,EACnG,CAAC;YACD,OAAO,OAAO,CAAC,IAAI,CAAC;QACtB,CAAC;IACH,CAAC;IAED,OAAO,QAAQ,CAAC;AAClB,CAAC"}
@@ -0,0 +1,27 @@
1
+ export interface BackupEntry {
2
+ path: string;
3
+ operation: 'create' | 'modify' | 'delete';
4
+ originalContent: string | null;
5
+ timestamp: string;
6
+ }
7
+ export interface RollbackState {
8
+ entries: BackupEntry[];
9
+ maxEntries: number;
10
+ }
11
+ declare let rollbackState: RollbackState;
12
+ export declare function createBackup(filePath: string, operation: 'create' | 'modify' | 'delete'): void;
13
+ export declare function undoLast(): {
14
+ success: boolean;
15
+ message: string;
16
+ entry?: BackupEntry;
17
+ };
18
+ export declare function undoN(count: number): {
19
+ success: boolean;
20
+ undone: number;
21
+ messages: string[];
22
+ };
23
+ export declare function getUndoHistory(): BackupEntry[];
24
+ export declare function getUndoCount(): number;
25
+ export declare function clearUndoHistory(): void;
26
+ export { rollbackState };
27
+ //# sourceMappingURL=rollback.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollback.d.ts","sourceRoot":"","sources":["../src/rollback.ts"],"names":[],"mappings":"AAKA,MAAM,WAAW,WAAW;IAC1B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,CAAC;IAC1C,eAAe,EAAE,MAAM,GAAG,IAAI,CAAC;IAC/B,SAAS,EAAE,MAAM,CAAC;CACnB;AAGD,MAAM,WAAW,aAAa;IAC5B,OAAO,EAAE,WAAW,EAAE,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;CACpB;AAGD,QAAA,IAAI,aAAa,EAAE,aAGlB,CAAC;AAGF,wBAAgB,YAAY,CAAC,QAAQ,EAAE,MAAM,EAAE,SAAS,EAAE,QAAQ,GAAG,QAAQ,GAAG,QAAQ,GAAG,IAAI,CA8B9F;AAGD,wBAAgB,QAAQ,IAAI;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,WAAW,CAAA;CAAE,CAiDrF;AAGD,wBAAgB,KAAK,CAAC,KAAK,EAAE,MAAM,GAAG;IAAE,OAAO,EAAE,OAAO,CAAC;IAAC,MAAM,EAAE,MAAM,CAAC;IAAC,QAAQ,EAAE,MAAM,EAAE,CAAA;CAAE,CAe7F;AAGD,wBAAgB,cAAc,IAAI,WAAW,EAAE,CAE9C;AAGD,wBAAgB,YAAY,IAAI,MAAM,CAErC;AAGD,wBAAgB,gBAAgB,IAAI,IAAI,CAEvC;AAGD,OAAO,EAAE,aAAa,EAAE,CAAC"}
@@ -0,0 +1,154 @@
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.rollbackState = void 0;
37
+ exports.createBackup = createBackup;
38
+ exports.undoLast = undoLast;
39
+ exports.undoN = undoN;
40
+ exports.getUndoHistory = getUndoHistory;
41
+ exports.getUndoCount = getUndoCount;
42
+ exports.clearUndoHistory = clearUndoHistory;
43
+ const fs = __importStar(require("fs"));
44
+ const path = __importStar(require("path"));
45
+ const session_1 = require("./session");
46
+ // Global rollback state
47
+ let rollbackState = {
48
+ entries: [],
49
+ maxEntries: 50,
50
+ };
51
+ exports.rollbackState = rollbackState;
52
+ // Create backup before applying changes
53
+ function createBackup(filePath, operation) {
54
+ const session = (0, session_1.getSession)();
55
+ const absolutePath = path.isAbsolute(filePath)
56
+ ? filePath
57
+ : path.join(session.workingDirectory, filePath);
58
+ let originalContent = null;
59
+ try {
60
+ if (fs.existsSync(absolutePath)) {
61
+ originalContent = fs.readFileSync(absolutePath, 'utf-8');
62
+ }
63
+ }
64
+ catch {
65
+ // File doesn't exist or can't be read
66
+ }
67
+ const entry = {
68
+ path: absolutePath,
69
+ operation,
70
+ originalContent,
71
+ timestamp: new Date().toISOString(),
72
+ };
73
+ // Add to stack
74
+ rollbackState.entries.push(entry);
75
+ // Limit stack size
76
+ if (rollbackState.entries.length > rollbackState.maxEntries) {
77
+ rollbackState.entries.shift();
78
+ }
79
+ }
80
+ // Undo last operation
81
+ function undoLast() {
82
+ if (rollbackState.entries.length === 0) {
83
+ return { success: false, message: 'Nothing to undo.' };
84
+ }
85
+ const entry = rollbackState.entries.pop();
86
+ try {
87
+ switch (entry.operation) {
88
+ case 'create':
89
+ // File was created, delete it
90
+ if (entry.originalContent === null) {
91
+ if (fs.existsSync(entry.path)) {
92
+ fs.unlinkSync(entry.path);
93
+ }
94
+ return { success: true, message: `Deleted: ${entry.path}`, entry };
95
+ }
96
+ // File existed before, restore original
97
+ fs.writeFileSync(entry.path, entry.originalContent, 'utf-8');
98
+ return { success: true, message: `Restored: ${entry.path}`, entry };
99
+ case 'modify':
100
+ // Restore original content
101
+ if (entry.originalContent !== null) {
102
+ fs.writeFileSync(entry.path, entry.originalContent, 'utf-8');
103
+ return { success: true, message: `Restored: ${entry.path}`, entry };
104
+ }
105
+ return { success: false, message: `No backup content for: ${entry.path}` };
106
+ case 'delete':
107
+ // File was deleted, restore it
108
+ if (entry.originalContent !== null) {
109
+ const dir = path.dirname(entry.path);
110
+ if (!fs.existsSync(dir)) {
111
+ fs.mkdirSync(dir, { recursive: true });
112
+ }
113
+ fs.writeFileSync(entry.path, entry.originalContent, 'utf-8');
114
+ return { success: true, message: `Restored: ${entry.path}`, entry };
115
+ }
116
+ return { success: false, message: `Cannot restore deleted file (no backup): ${entry.path}` };
117
+ default:
118
+ return { success: false, message: `Unknown operation: ${entry.operation}` };
119
+ }
120
+ }
121
+ catch (err) {
122
+ // Re-add entry if undo failed
123
+ rollbackState.entries.push(entry);
124
+ return { success: false, message: `Undo failed: ${err.message}` };
125
+ }
126
+ }
127
+ // Undo multiple operations
128
+ function undoN(count) {
129
+ const messages = [];
130
+ let undone = 0;
131
+ for (let i = 0; i < count; i++) {
132
+ const result = undoLast();
133
+ if (!result.success) {
134
+ messages.push(result.message);
135
+ break;
136
+ }
137
+ messages.push(result.message);
138
+ undone++;
139
+ }
140
+ return { success: undone > 0, undone, messages };
141
+ }
142
+ // Get undo history
143
+ function getUndoHistory() {
144
+ return [...rollbackState.entries];
145
+ }
146
+ // Get pending undo count
147
+ function getUndoCount() {
148
+ return rollbackState.entries.length;
149
+ }
150
+ // Clear undo history
151
+ function clearUndoHistory() {
152
+ rollbackState.entries = [];
153
+ }
154
+ //# sourceMappingURL=rollback.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"rollback.js","sourceRoot":"","sources":["../src/rollback.ts"],"names":[],"mappings":"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"}