driftdetect 0.9.39 → 0.9.41
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/dist/bin/drift.js +31 -1
- package/dist/bin/drift.js.map +1 -1
- package/dist/commands/backup.d.ts +16 -0
- package/dist/commands/backup.d.ts.map +1 -0
- package/dist/commands/backup.js +377 -0
- package/dist/commands/backup.js.map +1 -0
- package/dist/commands/index.d.ts +3 -0
- package/dist/commands/index.d.ts.map +1 -1
- package/dist/commands/index.js +6 -0
- package/dist/commands/index.js.map +1 -1
- package/dist/commands/init.d.ts.map +1 -1
- package/dist/commands/init.js +21 -4
- package/dist/commands/init.js.map +1 -1
- package/dist/commands/memory.d.ts +25 -0
- package/dist/commands/memory.d.ts.map +1 -0
- package/dist/commands/memory.js +1833 -0
- package/dist/commands/memory.js.map +1 -0
- package/dist/commands/setup.d.ts +23 -0
- package/dist/commands/setup.d.ts.map +1 -0
- package/dist/commands/setup.js +888 -0
- package/dist/commands/setup.js.map +1 -0
- package/dist/services/backup-service.d.ts +2 -0
- package/dist/services/backup-service.d.ts.map +1 -0
- package/dist/services/backup-service.js +2 -0
- package/dist/services/backup-service.js.map +1 -0
- package/dist/ui/project-indicator.d.ts +42 -0
- package/dist/ui/project-indicator.d.ts.map +1 -0
- package/dist/ui/project-indicator.js +114 -0
- package/dist/ui/project-indicator.js.map +1 -0
- package/package.json +5 -4
package/dist/bin/drift.js
CHANGED
|
@@ -8,7 +8,7 @@
|
|
|
8
8
|
* @requirements 29.1
|
|
9
9
|
*/
|
|
10
10
|
import { Command } from 'commander';
|
|
11
|
-
import { initCommand, scanCommand, checkCommand, statusCommand, approveCommand, ignoreCommand, reportCommand, exportCommand, whereCommand, filesCommand, watchCommand, dashboardCommand, trendsCommand, parserCommand, dnaCommand, boundariesCommand, callgraphCommand, projectsCommand, skillsCommand, migrateStorageCommand, wrappersCommand, createTestTopologyCommand, createCouplingCommand, createErrorHandlingCommand, createSimulateCommand, createConstraintsCommand, createWpfCommand, createGoCommand, createRustCommand, createCppCommand, createTsCommand, createPyCommand, createJavaCommand, createPhpCommand, envCommand, constantsCommand, licenseCommand, createGateCommand, contextCommand, telemetryCommand, auditCommand, nextStepsCommand, troubleshootCommand, } from '../commands/index.js';
|
|
11
|
+
import { initCommand, scanCommand, checkCommand, statusCommand, approveCommand, ignoreCommand, reportCommand, exportCommand, whereCommand, filesCommand, watchCommand, dashboardCommand, trendsCommand, parserCommand, dnaCommand, boundariesCommand, callgraphCommand, projectsCommand, skillsCommand, migrateStorageCommand, wrappersCommand, createTestTopologyCommand, createCouplingCommand, createErrorHandlingCommand, createSimulateCommand, createConstraintsCommand, createWpfCommand, createGoCommand, createRustCommand, createCppCommand, createTsCommand, createPyCommand, createJavaCommand, createPhpCommand, envCommand, constantsCommand, licenseCommand, createGateCommand, contextCommand, telemetryCommand, auditCommand, nextStepsCommand, troubleshootCommand, createMemoryCommand, setupCommand, backupCommand, } from '../commands/index.js';
|
|
12
12
|
import { VERSION } from '../index.js';
|
|
13
13
|
/**
|
|
14
14
|
* Create and configure the main CLI program
|
|
@@ -83,9 +83,17 @@ function createProgram() {
|
|
|
83
83
|
// User Guidance Commands
|
|
84
84
|
program.addCommand(nextStepsCommand);
|
|
85
85
|
program.addCommand(troubleshootCommand);
|
|
86
|
+
// Cortex V2 Memory Management
|
|
87
|
+
program.addCommand(createMemoryCommand());
|
|
88
|
+
// Unified Setup Wizard (guided onboarding)
|
|
89
|
+
program.addCommand(setupCommand);
|
|
90
|
+
// Backup & Restore (enterprise data safety)
|
|
91
|
+
program.addCommand(backupCommand);
|
|
86
92
|
// Add help examples
|
|
87
93
|
program.addHelpText('after', `
|
|
88
94
|
Examples:
|
|
95
|
+
$ drift setup Guided setup wizard (recommended for new users)
|
|
96
|
+
$ drift setup -y Quick setup with recommended defaults
|
|
89
97
|
$ drift init Initialize Drift in current directory
|
|
90
98
|
$ drift init --from-scaffold Initialize with Cheatcode2026 presets
|
|
91
99
|
$ drift scan Scan codebase for patterns
|
|
@@ -178,6 +186,28 @@ Examples:
|
|
|
178
186
|
$ drift next-steps -v Show all recommendations with reasons
|
|
179
187
|
$ drift troubleshoot Diagnose common issues
|
|
180
188
|
$ drift troubleshoot -v Show all issues including info-level
|
|
189
|
+
$ drift memory init Initialize the memory system
|
|
190
|
+
$ drift memory status Show memory system status
|
|
191
|
+
$ drift memory add tribal "..." Add tribal knowledge
|
|
192
|
+
$ drift memory add procedural "..." Add a procedure
|
|
193
|
+
$ drift memory list List all memories
|
|
194
|
+
$ drift memory list -t tribal List tribal memories only
|
|
195
|
+
$ drift memory show <id> Show memory details
|
|
196
|
+
$ drift memory search "auth" Search memories
|
|
197
|
+
$ drift memory learn -o "..." -f "..." Learn from a correction
|
|
198
|
+
$ drift memory feedback <id> confirm Confirm a memory is accurate
|
|
199
|
+
$ drift memory validate Validate and heal memories
|
|
200
|
+
$ drift memory consolidate Consolidate episodic memories
|
|
201
|
+
$ drift memory warnings Show active warnings
|
|
202
|
+
$ drift memory why "auth" Get context for a task
|
|
203
|
+
$ drift memory export out.json Export memories
|
|
204
|
+
$ drift memory import in.json Import memories
|
|
205
|
+
$ drift memory health Get health report
|
|
206
|
+
$ drift backup List all backups
|
|
207
|
+
$ drift backup create Create a backup
|
|
208
|
+
$ drift backup restore <id> Restore from a backup
|
|
209
|
+
$ drift backup delete <id> Delete a backup (requires typing DELETE)
|
|
210
|
+
$ drift backup info <id> Show backup details
|
|
181
211
|
|
|
182
212
|
Documentation:
|
|
183
213
|
https://github.com/drift/drift
|
package/dist/bin/drift.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drift.js","sourceRoot":"","sources":["../../src/bin/drift.ts"],"names":[],"mappings":";AACA;;;;;;;GAOG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACL,WAAW,EACX,WAAW,EACX,YAAY,EACZ,aAAa,EACb,cAAc,EACd,aAAa,EACb,aAAa,EACb,aAAa,EACb,YAAY,EACZ,YAAY,EACZ,YAAY,EACZ,gBAAgB,EAChB,aAAa,EACb,aAAa,EACb,UAAU,EACV,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,aAAa,EACb,qBAAqB,EACrB,eAAe,EACf,yBAAyB,EACzB,qBAAqB,EACrB,0BAA0B,EAC1B,qBAAqB,EACrB,wBAAwB,EACxB,gBAAgB,EAChB,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,iBAAiB,EACjB,gBAAgB,EAChB,UAAU,EACV,gBAAgB,EAChB,cAAc,EACd,iBAAiB,EACjB,cAAc,EACd,gBAAgB,EAChB,YAAY,EACZ,gBAAgB,EAChB,mBAAmB,
|
|
1
|
+
{"version":3,"file":"drift.js","sourceRoot":"","sources":["../../src/bin/drift.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backup Command - drift backup
|
|
3
|
+
*
|
|
4
|
+
* Enterprise-grade backup and restore for .drift data.
|
|
5
|
+
* Ensures data safety during version upgrades and migrations.
|
|
6
|
+
*
|
|
7
|
+
* Commands:
|
|
8
|
+
* - drift backup create - Create a backup
|
|
9
|
+
* - drift backup list - List all backups
|
|
10
|
+
* - drift backup restore - Restore from a backup
|
|
11
|
+
* - drift backup delete - Delete a backup (requires confirmation)
|
|
12
|
+
* - drift backup info - Show backup details
|
|
13
|
+
*/
|
|
14
|
+
import { Command } from 'commander';
|
|
15
|
+
export declare const backupCommand: Command;
|
|
16
|
+
//# sourceMappingURL=backup.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.d.ts","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAGH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAmapC,eAAO,MAAM,aAAa,SAqCvB,CAAC"}
|
|
@@ -0,0 +1,377 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Backup Command - drift backup
|
|
3
|
+
*
|
|
4
|
+
* Enterprise-grade backup and restore for .drift data.
|
|
5
|
+
* Ensures data safety during version upgrades and migrations.
|
|
6
|
+
*
|
|
7
|
+
* Commands:
|
|
8
|
+
* - drift backup create - Create a backup
|
|
9
|
+
* - drift backup list - List all backups
|
|
10
|
+
* - drift backup restore - Restore from a backup
|
|
11
|
+
* - drift backup delete - Delete a backup (requires confirmation)
|
|
12
|
+
* - drift backup info - Show backup details
|
|
13
|
+
*/
|
|
14
|
+
import chalk from 'chalk';
|
|
15
|
+
import { Command } from 'commander';
|
|
16
|
+
import { createWorkspaceManager, } from 'driftdetect-core';
|
|
17
|
+
import { confirmPrompt, selectPrompt, inputPrompt } from '../ui/prompts.js';
|
|
18
|
+
import { createSpinner, status } from '../ui/spinner.js';
|
|
19
|
+
import { VERSION } from '../index.js';
|
|
20
|
+
// ============================================================================
|
|
21
|
+
// Formatters
|
|
22
|
+
// ============================================================================
|
|
23
|
+
function formatSize(bytes) {
|
|
24
|
+
if (bytes < 1024)
|
|
25
|
+
return `${bytes} B`;
|
|
26
|
+
if (bytes < 1024 * 1024)
|
|
27
|
+
return `${(bytes / 1024).toFixed(1)} KB`;
|
|
28
|
+
return `${(bytes / (1024 * 1024)).toFixed(1)} MB`;
|
|
29
|
+
}
|
|
30
|
+
function formatDate(isoDate) {
|
|
31
|
+
const date = new Date(isoDate);
|
|
32
|
+
return date.toLocaleString();
|
|
33
|
+
}
|
|
34
|
+
function formatRelativeDate(isoDate) {
|
|
35
|
+
const date = new Date(isoDate);
|
|
36
|
+
const now = new Date();
|
|
37
|
+
const diffMs = now.getTime() - date.getTime();
|
|
38
|
+
const diffMins = Math.floor(diffMs / (1000 * 60));
|
|
39
|
+
const diffHours = Math.floor(diffMs / (1000 * 60 * 60));
|
|
40
|
+
const diffDays = Math.floor(diffMs / (1000 * 60 * 60 * 24));
|
|
41
|
+
if (diffMins < 1)
|
|
42
|
+
return 'just now';
|
|
43
|
+
if (diffMins < 60)
|
|
44
|
+
return `${diffMins} min ago`;
|
|
45
|
+
if (diffHours < 24)
|
|
46
|
+
return `${diffHours} hours ago`;
|
|
47
|
+
if (diffDays < 7)
|
|
48
|
+
return `${diffDays} days ago`;
|
|
49
|
+
return formatDate(isoDate);
|
|
50
|
+
}
|
|
51
|
+
function formatReason(reason) {
|
|
52
|
+
const labels = {
|
|
53
|
+
version_upgrade: '🔄 Version Upgrade',
|
|
54
|
+
schema_migration: '📦 Schema Migration',
|
|
55
|
+
user_requested: '👤 User Requested',
|
|
56
|
+
pre_destructive_operation: '⚠️ Pre-Destructive',
|
|
57
|
+
scheduled: '⏰ Scheduled',
|
|
58
|
+
auto_save: '💾 Auto Save',
|
|
59
|
+
};
|
|
60
|
+
return labels[reason] ?? reason;
|
|
61
|
+
}
|
|
62
|
+
async function createAction(options) {
|
|
63
|
+
const cwd = process.cwd();
|
|
64
|
+
const manager = createWorkspaceManager(cwd);
|
|
65
|
+
const format = options.format ?? 'text';
|
|
66
|
+
const spinner = format === 'text' ? createSpinner('Creating backup...') : null;
|
|
67
|
+
spinner?.start();
|
|
68
|
+
try {
|
|
69
|
+
await manager.initialize({ driftVersion: VERSION });
|
|
70
|
+
const reason = (options.reason ?? 'user_requested');
|
|
71
|
+
const result = await manager.createBackup(reason);
|
|
72
|
+
spinner?.stop();
|
|
73
|
+
if (result.success) {
|
|
74
|
+
if (format === 'json') {
|
|
75
|
+
console.log(JSON.stringify({
|
|
76
|
+
success: true,
|
|
77
|
+
backupId: result.backupId,
|
|
78
|
+
path: result.backupPath,
|
|
79
|
+
size: result.metadata.sizeBytes,
|
|
80
|
+
files: result.metadata.files.length,
|
|
81
|
+
checksum: result.metadata.checksum,
|
|
82
|
+
}));
|
|
83
|
+
return;
|
|
84
|
+
}
|
|
85
|
+
spinner?.succeed(`Backup created: ${chalk.cyan(result.backupId)}`);
|
|
86
|
+
console.log();
|
|
87
|
+
console.log(chalk.gray(` Path: ${result.backupPath}`));
|
|
88
|
+
console.log(chalk.gray(` Size: ${formatSize(result.metadata.sizeBytes)}`));
|
|
89
|
+
console.log(chalk.gray(` Files: ${result.metadata.files.length}`));
|
|
90
|
+
console.log(chalk.gray(` Checksum: ${result.metadata.checksum.slice(0, 16)}...`));
|
|
91
|
+
console.log();
|
|
92
|
+
}
|
|
93
|
+
else {
|
|
94
|
+
if (format === 'json') {
|
|
95
|
+
console.log(JSON.stringify({ success: false, error: result.error }));
|
|
96
|
+
return;
|
|
97
|
+
}
|
|
98
|
+
spinner?.fail(`Backup failed: ${result.error}`);
|
|
99
|
+
}
|
|
100
|
+
}
|
|
101
|
+
catch (error) {
|
|
102
|
+
spinner?.stop();
|
|
103
|
+
if (format === 'json') {
|
|
104
|
+
console.log(JSON.stringify({ success: false, error: error.message }));
|
|
105
|
+
return;
|
|
106
|
+
}
|
|
107
|
+
spinner?.fail(`Backup failed: ${error.message}`);
|
|
108
|
+
}
|
|
109
|
+
}
|
|
110
|
+
async function listAction(options) {
|
|
111
|
+
const cwd = process.cwd();
|
|
112
|
+
const manager = createWorkspaceManager(cwd);
|
|
113
|
+
try {
|
|
114
|
+
await manager.initialize({ skipMigration: true });
|
|
115
|
+
const backups = await manager.listBackups();
|
|
116
|
+
if (options.json) {
|
|
117
|
+
console.log(JSON.stringify(backups, null, 2));
|
|
118
|
+
return;
|
|
119
|
+
}
|
|
120
|
+
if (backups.length === 0) {
|
|
121
|
+
console.log();
|
|
122
|
+
console.log(chalk.yellow('No backups found.'));
|
|
123
|
+
console.log(chalk.gray('Run `drift backup create` to create one.'));
|
|
124
|
+
console.log();
|
|
125
|
+
return;
|
|
126
|
+
}
|
|
127
|
+
const limit = options.limit ? parseInt(options.limit, 10) : backups.length;
|
|
128
|
+
const displayBackups = backups.slice(0, limit);
|
|
129
|
+
console.log();
|
|
130
|
+
console.log(chalk.bold(`📦 Backups (${backups.length} total)`));
|
|
131
|
+
console.log();
|
|
132
|
+
// Table header
|
|
133
|
+
console.log(chalk.gray(' ' +
|
|
134
|
+
'ID'.padEnd(10) +
|
|
135
|
+
'Created'.padEnd(18) +
|
|
136
|
+
'Reason'.padEnd(22) +
|
|
137
|
+
'Size'.padEnd(10) +
|
|
138
|
+
'Version'));
|
|
139
|
+
console.log(chalk.gray(' ' + '─'.repeat(75)));
|
|
140
|
+
for (const backup of displayBackups) {
|
|
141
|
+
console.log(' ' +
|
|
142
|
+
chalk.cyan(backup.id.padEnd(10)) +
|
|
143
|
+
chalk.gray(formatRelativeDate(backup.createdAt).padEnd(18)) +
|
|
144
|
+
formatReason(backup.reason).padEnd(22) +
|
|
145
|
+
chalk.white(formatSize(backup.sizeBytes).padEnd(10)) +
|
|
146
|
+
chalk.gray(backup.driftVersion));
|
|
147
|
+
}
|
|
148
|
+
console.log();
|
|
149
|
+
if (backups.length > limit) {
|
|
150
|
+
console.log(chalk.gray(` ... and ${backups.length - limit} more. Use --limit to see more.`));
|
|
151
|
+
console.log();
|
|
152
|
+
}
|
|
153
|
+
}
|
|
154
|
+
catch (error) {
|
|
155
|
+
status.error(`Failed to list backups: ${error.message}`);
|
|
156
|
+
}
|
|
157
|
+
}
|
|
158
|
+
// ============================================================================
|
|
159
|
+
// Restore Command
|
|
160
|
+
// ============================================================================
|
|
161
|
+
async function restoreAction(backupId) {
|
|
162
|
+
const cwd = process.cwd();
|
|
163
|
+
const manager = createWorkspaceManager(cwd);
|
|
164
|
+
try {
|
|
165
|
+
await manager.initialize({ skipMigration: true });
|
|
166
|
+
const backups = await manager.listBackups();
|
|
167
|
+
if (backups.length === 0) {
|
|
168
|
+
status.error('No backups available');
|
|
169
|
+
return;
|
|
170
|
+
}
|
|
171
|
+
let targetBackup;
|
|
172
|
+
if (backupId) {
|
|
173
|
+
targetBackup = backups.find(b => b.id === backupId);
|
|
174
|
+
if (!targetBackup) {
|
|
175
|
+
status.error(`Backup not found: ${backupId}`);
|
|
176
|
+
return;
|
|
177
|
+
}
|
|
178
|
+
}
|
|
179
|
+
else {
|
|
180
|
+
// Interactive selection
|
|
181
|
+
const choices = backups.map(b => ({
|
|
182
|
+
name: `${b.id} - ${formatRelativeDate(b.createdAt)} - ${formatReason(b.reason)} (${formatSize(b.sizeBytes)})`,
|
|
183
|
+
value: b.id,
|
|
184
|
+
}));
|
|
185
|
+
const selectedId = await selectPrompt('Select backup to restore:', choices);
|
|
186
|
+
targetBackup = backups.find(b => b.id === selectedId);
|
|
187
|
+
}
|
|
188
|
+
if (!targetBackup) {
|
|
189
|
+
status.error('Backup not found');
|
|
190
|
+
return;
|
|
191
|
+
}
|
|
192
|
+
// Confirm restore
|
|
193
|
+
console.log();
|
|
194
|
+
console.log(chalk.yellow('⚠️ This will replace your current .drift data with the backup.'));
|
|
195
|
+
console.log(chalk.gray(` A backup of the current state will be created first.`));
|
|
196
|
+
console.log();
|
|
197
|
+
const confirmed = await confirmPrompt(`Restore from backup ${targetBackup.id}?`, false);
|
|
198
|
+
if (!confirmed) {
|
|
199
|
+
status.info('Cancelled');
|
|
200
|
+
return;
|
|
201
|
+
}
|
|
202
|
+
const spinner = createSpinner('Restoring backup...');
|
|
203
|
+
spinner.start();
|
|
204
|
+
const result = await manager.restore(targetBackup.id);
|
|
205
|
+
if (result.success) {
|
|
206
|
+
spinner.succeed(`Restored ${result.filesRestored} files from backup`);
|
|
207
|
+
console.log(chalk.gray(` From: ${result.restoredFrom}`));
|
|
208
|
+
}
|
|
209
|
+
else {
|
|
210
|
+
spinner.fail(`Restore failed: ${result.error}`);
|
|
211
|
+
}
|
|
212
|
+
}
|
|
213
|
+
catch (error) {
|
|
214
|
+
status.error(`Restore failed: ${error.message}`);
|
|
215
|
+
}
|
|
216
|
+
}
|
|
217
|
+
// ============================================================================
|
|
218
|
+
// Delete Command
|
|
219
|
+
// ============================================================================
|
|
220
|
+
async function deleteAction(backupId) {
|
|
221
|
+
const cwd = process.cwd();
|
|
222
|
+
const manager = createWorkspaceManager(cwd);
|
|
223
|
+
try {
|
|
224
|
+
await manager.initialize({ skipMigration: true });
|
|
225
|
+
const backups = await manager.listBackups();
|
|
226
|
+
if (backups.length === 0) {
|
|
227
|
+
status.error('No backups available');
|
|
228
|
+
return;
|
|
229
|
+
}
|
|
230
|
+
let targetBackup;
|
|
231
|
+
if (backupId) {
|
|
232
|
+
targetBackup = backups.find(b => b.id === backupId);
|
|
233
|
+
if (!targetBackup) {
|
|
234
|
+
status.error(`Backup not found: ${backupId}`);
|
|
235
|
+
return;
|
|
236
|
+
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
// Interactive selection
|
|
240
|
+
const choices = backups.map(b => ({
|
|
241
|
+
name: `${b.id} - ${formatRelativeDate(b.createdAt)} - ${formatReason(b.reason)}`,
|
|
242
|
+
value: b.id,
|
|
243
|
+
}));
|
|
244
|
+
const selectedId = await selectPrompt('Select backup to delete:', choices);
|
|
245
|
+
targetBackup = backups.find(b => b.id === selectedId);
|
|
246
|
+
}
|
|
247
|
+
if (!targetBackup) {
|
|
248
|
+
status.error('Backup not found');
|
|
249
|
+
return;
|
|
250
|
+
}
|
|
251
|
+
// Require explicit confirmation
|
|
252
|
+
console.log();
|
|
253
|
+
console.log(chalk.red('⚠️ This action is irreversible!'));
|
|
254
|
+
console.log(chalk.gray(` Backup: ${targetBackup.id}`));
|
|
255
|
+
console.log(chalk.gray(` Created: ${formatDate(targetBackup.createdAt)}`));
|
|
256
|
+
console.log(chalk.gray(` Size: ${formatSize(targetBackup.sizeBytes)}`));
|
|
257
|
+
console.log();
|
|
258
|
+
const confirmation = await inputPrompt('Type DELETE to confirm deletion:', '');
|
|
259
|
+
if (confirmation !== 'DELETE') {
|
|
260
|
+
status.info('Deletion cancelled (confirmation token not provided)');
|
|
261
|
+
return;
|
|
262
|
+
}
|
|
263
|
+
const spinner = createSpinner('Deleting backup...');
|
|
264
|
+
spinner.start();
|
|
265
|
+
const success = await manager.deleteBackup(targetBackup.id, 'DELETE');
|
|
266
|
+
if (success) {
|
|
267
|
+
spinner.succeed(`Deleted backup ${targetBackup.id}`);
|
|
268
|
+
}
|
|
269
|
+
else {
|
|
270
|
+
spinner.fail('Failed to delete backup');
|
|
271
|
+
}
|
|
272
|
+
}
|
|
273
|
+
catch (error) {
|
|
274
|
+
status.error(`Delete failed: ${error.message}`);
|
|
275
|
+
}
|
|
276
|
+
}
|
|
277
|
+
async function infoAction(backupId, options) {
|
|
278
|
+
const cwd = process.cwd();
|
|
279
|
+
const manager = createWorkspaceManager(cwd);
|
|
280
|
+
const format = options?.format ?? 'text';
|
|
281
|
+
try {
|
|
282
|
+
await manager.initialize({ skipMigration: true });
|
|
283
|
+
const backups = await manager.listBackups();
|
|
284
|
+
if (backups.length === 0) {
|
|
285
|
+
if (format === 'json') {
|
|
286
|
+
console.log(JSON.stringify({ error: 'No backups available' }));
|
|
287
|
+
return;
|
|
288
|
+
}
|
|
289
|
+
status.error('No backups available');
|
|
290
|
+
return;
|
|
291
|
+
}
|
|
292
|
+
let targetBackup;
|
|
293
|
+
if (backupId) {
|
|
294
|
+
targetBackup = backups.find(b => b.id === backupId);
|
|
295
|
+
}
|
|
296
|
+
else {
|
|
297
|
+
// Show most recent
|
|
298
|
+
targetBackup = backups[0];
|
|
299
|
+
}
|
|
300
|
+
if (!targetBackup) {
|
|
301
|
+
if (format === 'json') {
|
|
302
|
+
console.log(JSON.stringify({ error: `Backup not found: ${backupId}` }));
|
|
303
|
+
return;
|
|
304
|
+
}
|
|
305
|
+
status.error(`Backup not found: ${backupId}`);
|
|
306
|
+
return;
|
|
307
|
+
}
|
|
308
|
+
if (format === 'json') {
|
|
309
|
+
console.log(JSON.stringify(targetBackup, null, 2));
|
|
310
|
+
return;
|
|
311
|
+
}
|
|
312
|
+
console.log();
|
|
313
|
+
console.log(chalk.bold(`📦 Backup: ${targetBackup.id}`));
|
|
314
|
+
console.log();
|
|
315
|
+
console.log(chalk.gray(' Created: ') + formatDate(targetBackup.createdAt));
|
|
316
|
+
console.log(chalk.gray(' Reason: ') + formatReason(targetBackup.reason));
|
|
317
|
+
console.log(chalk.gray(' Size: ') + formatSize(targetBackup.sizeBytes));
|
|
318
|
+
console.log(chalk.gray(' Drift Version: ') + targetBackup.driftVersion);
|
|
319
|
+
console.log(chalk.gray(' Schema: ') + targetBackup.schemaVersion);
|
|
320
|
+
console.log(chalk.gray(' Compressed: ') + (targetBackup.compressed ? 'Yes' : 'No'));
|
|
321
|
+
console.log(chalk.gray(' Checksum: ') + targetBackup.checksum);
|
|
322
|
+
console.log(chalk.gray(' Project: ') + targetBackup.projectName);
|
|
323
|
+
console.log(chalk.gray(' Original Path: ') + targetBackup.originalPath);
|
|
324
|
+
console.log();
|
|
325
|
+
console.log(chalk.gray(` Files (${targetBackup.files.length}):`));
|
|
326
|
+
const maxFiles = 10;
|
|
327
|
+
const displayFiles = targetBackup.files.slice(0, maxFiles);
|
|
328
|
+
for (const file of displayFiles) {
|
|
329
|
+
console.log(chalk.gray(` - ${file}`));
|
|
330
|
+
}
|
|
331
|
+
if (targetBackup.files.length > maxFiles) {
|
|
332
|
+
console.log(chalk.gray(` ... and ${targetBackup.files.length - maxFiles} more`));
|
|
333
|
+
}
|
|
334
|
+
console.log();
|
|
335
|
+
}
|
|
336
|
+
catch (error) {
|
|
337
|
+
if (format === 'json') {
|
|
338
|
+
console.log(JSON.stringify({ error: error.message }));
|
|
339
|
+
return;
|
|
340
|
+
}
|
|
341
|
+
status.error(`Failed to get backup info: ${error.message}`);
|
|
342
|
+
}
|
|
343
|
+
}
|
|
344
|
+
// ============================================================================
|
|
345
|
+
// Command Registration
|
|
346
|
+
// ============================================================================
|
|
347
|
+
export const backupCommand = new Command('backup')
|
|
348
|
+
.description('Manage .drift backups')
|
|
349
|
+
.addCommand(new Command('create')
|
|
350
|
+
.description('Create a backup of .drift data')
|
|
351
|
+
.option('-r, --reason <reason>', 'Backup reason (user_requested, scheduled)')
|
|
352
|
+
.option('--format <format>', 'Output format (text, json)', 'text')
|
|
353
|
+
.action(createAction))
|
|
354
|
+
.addCommand(new Command('list')
|
|
355
|
+
.alias('ls')
|
|
356
|
+
.description('List all backups')
|
|
357
|
+
.option('--json', 'Output as JSON')
|
|
358
|
+
.option('--format <format>', 'Output format (text, json)', 'text')
|
|
359
|
+
.option('-l, --limit <n>', 'Limit number of backups shown')
|
|
360
|
+
.action((opts) => listAction({ ...opts, json: opts.json || opts.format === 'json' })))
|
|
361
|
+
.addCommand(new Command('restore')
|
|
362
|
+
.description('Restore from a backup')
|
|
363
|
+
.argument('[backup-id]', 'Backup ID to restore')
|
|
364
|
+
.action(restoreAction))
|
|
365
|
+
.addCommand(new Command('delete')
|
|
366
|
+
.alias('rm')
|
|
367
|
+
.description('Delete a backup (requires typing DELETE)')
|
|
368
|
+
.argument('[backup-id]', 'Backup ID to delete')
|
|
369
|
+
.action(deleteAction))
|
|
370
|
+
.addCommand(new Command('info')
|
|
371
|
+
.description('Show backup details')
|
|
372
|
+
.argument('[backup-id]', 'Backup ID (default: most recent)')
|
|
373
|
+
.option('--format <format>', 'Output format (text, json)', 'text')
|
|
374
|
+
.action(infoAction));
|
|
375
|
+
// Default action (list)
|
|
376
|
+
backupCommand.action(listAction);
|
|
377
|
+
//# sourceMappingURL=backup.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"backup.js","sourceRoot":"","sources":["../../src/commands/backup.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.d.ts
CHANGED
|
@@ -47,4 +47,7 @@ export { telemetryCommand } from './telemetry.js';
|
|
|
47
47
|
export { auditCommand } from './audit.js';
|
|
48
48
|
export { nextStepsCommand } from './next-steps.js';
|
|
49
49
|
export { troubleshootCommand } from './troubleshoot.js';
|
|
50
|
+
export { createMemoryCommand } from './memory.js';
|
|
51
|
+
export { setupCommand } from './setup.js';
|
|
52
|
+
export { backupCommand } from './backup.js';
|
|
50
53
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,WAAW,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAC9C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,EAAE,eAAe,IAAI,YAAY,EAAE,MAAM,YAAY,CAAC;AAC7D,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AAC5C,OAAO,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AACpD,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,aAAa,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAGhD,OAAO,EAAE,yBAAyB,EAAE,MAAM,oBAAoB,CAAC;AAC/D,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AACtD,OAAO,EAAE,0BAA0B,EAAE,MAAM,qBAAqB,CAAC;AACjE,OAAO,EAAE,sBAAsB,EAAE,MAAM,gBAAgB,CAAC;AACxD,OAAO,EAAE,wBAAwB,EAAE,MAAM,kBAAkB,CAAC;AAG5D,OAAO,EAAE,qBAAqB,EAAE,MAAM,eAAe,CAAC;AAGtD,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,eAAe,EAAE,MAAM,SAAS,CAAC;AAG1C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,UAAU,CAAC;AAG5C,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AAGtC,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAG9C,OAAO,EAAE,cAAc,EAAE,MAAM,cAAc,CAAC;AAG9C,OAAO,EAAE,gBAAgB,EAAE,MAAM,gBAAgB,CAAC;AAGlD,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,gBAAgB,EAAE,MAAM,iBAAiB,CAAC;AACnD,OAAO,EAAE,mBAAmB,EAAE,MAAM,mBAAmB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
|
package/dist/commands/index.js
CHANGED
|
@@ -65,4 +65,10 @@ export { auditCommand } from './audit.js';
|
|
|
65
65
|
// User Guidance Commands
|
|
66
66
|
export { nextStepsCommand } from './next-steps.js';
|
|
67
67
|
export { troubleshootCommand } from './troubleshoot.js';
|
|
68
|
+
// Cortex V2 Memory Management
|
|
69
|
+
export { createMemoryCommand } from './memory.js';
|
|
70
|
+
// Unified Setup Wizard
|
|
71
|
+
export { setupCommand } from './setup.js';
|
|
72
|
+
// Backup & Restore
|
|
73
|
+
export { backupCommand } from './backup.js';
|
|
68
74
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/commands/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+BAA+B;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;
|
|
1
|
+
{"version":3,"file":"init.d.ts","sourceRoot":"","sources":["../../src/commands/init.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAOH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAMpC,MAAM,WAAW,WAAW;IAC1B,6CAA6C;IAC7C,YAAY,CAAC,EAAE,OAAO,CAAC;IACvB,+BAA+B;IAC/B,GAAG,CAAC,EAAE,OAAO,CAAC;IACd,4BAA4B;IAC5B,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AA+cD,eAAO,MAAM,WAAW,SAKH,CAAC"}
|
package/dist/commands/init.js
CHANGED
|
@@ -316,15 +316,32 @@ async function initAction(options) {
|
|
|
316
316
|
if (!options.yes) {
|
|
317
317
|
initOpts = await promptInitOptions();
|
|
318
318
|
}
|
|
319
|
-
//
|
|
319
|
+
// Guide user to next steps
|
|
320
|
+
console.log();
|
|
320
321
|
if (initOpts.scanNow) {
|
|
321
|
-
|
|
322
|
-
|
|
323
|
-
|
|
322
|
+
if (initOpts.autoApprove) {
|
|
323
|
+
console.log(chalk.gray('To scan and auto-approve high-confidence patterns:'));
|
|
324
|
+
console.log(chalk.cyan(' drift scan'));
|
|
325
|
+
console.log(chalk.cyan(' drift approve --auto'));
|
|
326
|
+
console.log();
|
|
327
|
+
console.log(chalk.gray('Or use the guided setup wizard:'));
|
|
328
|
+
console.log(chalk.cyan(' drift setup'));
|
|
329
|
+
}
|
|
330
|
+
else {
|
|
331
|
+
console.log(chalk.gray('To run an initial scan, use:'));
|
|
332
|
+
console.log(chalk.cyan(' drift scan'));
|
|
333
|
+
console.log();
|
|
334
|
+
console.log(chalk.gray('Or use the guided setup wizard (recommended):'));
|
|
335
|
+
console.log(chalk.cyan(' drift setup'));
|
|
336
|
+
}
|
|
324
337
|
console.log();
|
|
325
338
|
console.log(chalk.gray('To check for violations:'));
|
|
326
339
|
console.log(chalk.cyan(' drift check'));
|
|
327
340
|
}
|
|
341
|
+
else {
|
|
342
|
+
console.log(chalk.gray('When ready, use the guided setup wizard:'));
|
|
343
|
+
console.log(chalk.cyan(' drift setup'));
|
|
344
|
+
}
|
|
328
345
|
// Summary
|
|
329
346
|
console.log();
|
|
330
347
|
status.success('Drift initialized successfully!');
|