@savestate/cli 0.7.0 → 0.8.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 (89) hide show
  1. package/dist/cli/__tests__/progress.test.d.ts +5 -0
  2. package/dist/cli/__tests__/progress.test.d.ts.map +1 -0
  3. package/dist/cli/__tests__/progress.test.js +212 -0
  4. package/dist/cli/__tests__/progress.test.js.map +1 -0
  5. package/dist/cli/__tests__/signal-handler.test.d.ts +5 -0
  6. package/dist/cli/__tests__/signal-handler.test.d.ts.map +1 -0
  7. package/dist/cli/__tests__/signal-handler.test.js +99 -0
  8. package/dist/cli/__tests__/signal-handler.test.js.map +1 -0
  9. package/dist/cli/__tests__/summary.test.d.ts +5 -0
  10. package/dist/cli/__tests__/summary.test.d.ts.map +1 -0
  11. package/dist/cli/__tests__/summary.test.js +242 -0
  12. package/dist/cli/__tests__/summary.test.js.map +1 -0
  13. package/dist/cli/index.d.ts +10 -0
  14. package/dist/cli/index.d.ts.map +1 -0
  15. package/dist/cli/index.js +10 -0
  16. package/dist/cli/index.js.map +1 -0
  17. package/dist/cli/progress.d.ts +86 -0
  18. package/dist/cli/progress.d.ts.map +1 -0
  19. package/dist/cli/progress.js +205 -0
  20. package/dist/cli/progress.js.map +1 -0
  21. package/dist/cli/prompts.d.ts +49 -0
  22. package/dist/cli/prompts.d.ts.map +1 -0
  23. package/dist/cli/prompts.js +266 -0
  24. package/dist/cli/prompts.js.map +1 -0
  25. package/dist/cli/signal-handler.d.ts +63 -0
  26. package/dist/cli/signal-handler.d.ts.map +1 -0
  27. package/dist/cli/signal-handler.js +165 -0
  28. package/dist/cli/signal-handler.js.map +1 -0
  29. package/dist/cli/summary.d.ts +33 -0
  30. package/dist/cli/summary.d.ts.map +1 -0
  31. package/dist/cli/summary.js +296 -0
  32. package/dist/cli/summary.js.map +1 -0
  33. package/dist/cli.js +7 -1
  34. package/dist/cli.js.map +1 -1
  35. package/dist/commands/migrate.d.ts +18 -4
  36. package/dist/commands/migrate.d.ts.map +1 -1
  37. package/dist/commands/migrate.js +324 -163
  38. package/dist/commands/migrate.js.map +1 -1
  39. package/dist/migrate/__tests__/capabilities.test.d.ts +7 -0
  40. package/dist/migrate/__tests__/capabilities.test.d.ts.map +1 -0
  41. package/dist/migrate/__tests__/capabilities.test.js +90 -0
  42. package/dist/migrate/__tests__/capabilities.test.js.map +1 -0
  43. package/dist/migrate/__tests__/chatgpt-loader.test.d.ts +7 -0
  44. package/dist/migrate/__tests__/chatgpt-loader.test.d.ts.map +1 -0
  45. package/dist/migrate/__tests__/chatgpt-loader.test.js +889 -0
  46. package/dist/migrate/__tests__/chatgpt-loader.test.js.map +1 -0
  47. package/dist/migrate/__tests__/edge-cases.test.d.ts +7 -0
  48. package/dist/migrate/__tests__/edge-cases.test.d.ts.map +1 -0
  49. package/dist/migrate/__tests__/edge-cases.test.js +787 -0
  50. package/dist/migrate/__tests__/edge-cases.test.js.map +1 -0
  51. package/dist/migrate/__tests__/error-recovery.test.d.ts +7 -0
  52. package/dist/migrate/__tests__/error-recovery.test.d.ts.map +1 -0
  53. package/dist/migrate/__tests__/error-recovery.test.js +461 -0
  54. package/dist/migrate/__tests__/error-recovery.test.js.map +1 -0
  55. package/dist/migrate/__tests__/integration.test.d.ts +7 -0
  56. package/dist/migrate/__tests__/integration.test.d.ts.map +1 -0
  57. package/dist/migrate/__tests__/integration.test.js +536 -0
  58. package/dist/migrate/__tests__/integration.test.js.map +1 -0
  59. package/dist/migrate/__tests__/performance.test.d.ts +7 -0
  60. package/dist/migrate/__tests__/performance.test.d.ts.map +1 -0
  61. package/dist/migrate/__tests__/performance.test.js +478 -0
  62. package/dist/migrate/__tests__/performance.test.js.map +1 -0
  63. package/dist/migrate/__tests__/registry.test.d.ts +7 -0
  64. package/dist/migrate/__tests__/registry.test.d.ts.map +1 -0
  65. package/dist/migrate/__tests__/registry.test.js +167 -0
  66. package/dist/migrate/__tests__/registry.test.js.map +1 -0
  67. package/dist/migrate/compatibility.d.ts +47 -0
  68. package/dist/migrate/compatibility.d.ts.map +1 -0
  69. package/dist/migrate/compatibility.js +468 -0
  70. package/dist/migrate/compatibility.js.map +1 -0
  71. package/dist/migrate/extractors/__tests__/claude.test.d.ts +12 -0
  72. package/dist/migrate/extractors/__tests__/claude.test.d.ts.map +1 -0
  73. package/dist/migrate/extractors/__tests__/claude.test.js +789 -0
  74. package/dist/migrate/extractors/__tests__/claude.test.js.map +1 -0
  75. package/dist/migrate/extractors/claude.d.ts +69 -0
  76. package/dist/migrate/extractors/claude.d.ts.map +1 -0
  77. package/dist/migrate/extractors/claude.js +1136 -0
  78. package/dist/migrate/extractors/claude.js.map +1 -0
  79. package/dist/migrate/extractors/registry.js +3 -2
  80. package/dist/migrate/extractors/registry.js.map +1 -1
  81. package/dist/migrate/loaders/chatgpt.d.ts +72 -0
  82. package/dist/migrate/loaders/chatgpt.d.ts.map +1 -0
  83. package/dist/migrate/loaders/chatgpt.js +691 -0
  84. package/dist/migrate/loaders/chatgpt.js.map +1 -0
  85. package/dist/migrate/loaders/registry.js +3 -2
  86. package/dist/migrate/loaders/registry.js.map +1 -1
  87. package/dist/migrate/types.d.ts +2 -0
  88. package/dist/migrate/types.d.ts.map +1 -1
  89. package/package.json +2 -1
@@ -0,0 +1,63 @@
1
+ /**
2
+ * Signal Handler
3
+ *
4
+ * Graceful handling of Ctrl+C (SIGINT) and other signals.
5
+ * Ensures cleanup happens and migrations can be resumed.
6
+ */
7
+ import type { MigrationOrchestrator } from '../migrate/index.js';
8
+ export interface SignalHandlerOptions {
9
+ /** Orchestrator to save state on interrupt */
10
+ orchestrator?: MigrationOrchestrator;
11
+ /** Custom cleanup function */
12
+ cleanup?: () => Promise<void>;
13
+ /** Message to show on interrupt */
14
+ message?: string;
15
+ /** Whether to show resume hint */
16
+ showResumeHint?: boolean;
17
+ }
18
+ export declare class SignalHandler {
19
+ private orchestrator?;
20
+ private cleanup?;
21
+ private message;
22
+ private showResumeHint;
23
+ private isHandling;
24
+ private interruptCount;
25
+ constructor(options?: SignalHandlerOptions);
26
+ /**
27
+ * Register signal handlers
28
+ */
29
+ register(): void;
30
+ /**
31
+ * Unregister signal handlers
32
+ */
33
+ unregister(): void;
34
+ /**
35
+ * Update the orchestrator reference
36
+ */
37
+ setOrchestrator(orchestrator: MigrationOrchestrator): void;
38
+ /**
39
+ * Handle SIGINT/SIGTERM
40
+ */
41
+ private handleInterrupt;
42
+ /**
43
+ * Handle uncaught exceptions
44
+ */
45
+ private handleUncaughtError;
46
+ /**
47
+ * Handle unhandled promise rejections
48
+ */
49
+ private handleUnhandledRejection;
50
+ }
51
+ /**
52
+ * Setup global signal handling
53
+ */
54
+ export declare function setupSignalHandler(options?: SignalHandlerOptions): SignalHandler;
55
+ /**
56
+ * Get the current signal handler
57
+ */
58
+ export declare function getSignalHandler(): SignalHandler | null;
59
+ /**
60
+ * Cleanup signal handling
61
+ */
62
+ export declare function cleanupSignalHandler(): void;
63
+ //# sourceMappingURL=signal-handler.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-handler.d.ts","sourceRoot":"","sources":["../../src/cli/signal-handler.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,KAAK,EAAE,qBAAqB,EAAE,MAAM,qBAAqB,CAAC;AAIjE,MAAM,WAAW,oBAAoB;IACnC,8CAA8C;IAC9C,YAAY,CAAC,EAAE,qBAAqB,CAAC;IACrC,8BAA8B;IAC9B,OAAO,CAAC,EAAE,MAAM,OAAO,CAAC,IAAI,CAAC,CAAC;IAC9B,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;CAC1B;AAID,qBAAa,aAAa;IACxB,OAAO,CAAC,YAAY,CAAC,CAAwB;IAC7C,OAAO,CAAC,OAAO,CAAC,CAAsB;IACtC,OAAO,CAAC,OAAO,CAAS;IACxB,OAAO,CAAC,cAAc,CAAU;IAChC,OAAO,CAAC,UAAU,CAAS;IAC3B,OAAO,CAAC,cAAc,CAAK;gBAEf,OAAO,GAAE,oBAAyB;IAO9C;;OAEG;IACH,QAAQ,IAAI,IAAI;IAShB;;OAEG;IACH,UAAU,IAAI,IAAI;IAOlB;;OAEG;IACH,eAAe,CAAC,YAAY,EAAE,qBAAqB,GAAG,IAAI;IAI1D;;OAEG;IACH,OAAO,CAAC,eAAe,CAyDrB;IAEF;;OAEG;IACH,OAAO,CAAC,mBAAmB,CA0BzB;IAEF;;OAEG;IACH,OAAO,CAAC,wBAAwB,CAG9B;CACH;AAMD;;GAEG;AACH,wBAAgB,kBAAkB,CAAC,OAAO,GAAE,oBAAyB,GAAG,aAAa,CAQpF;AAED;;GAEG;AACH,wBAAgB,gBAAgB,IAAI,aAAa,GAAG,IAAI,CAEvD;AAED;;GAEG;AACH,wBAAgB,oBAAoB,IAAI,IAAI,CAK3C"}
@@ -0,0 +1,165 @@
1
+ /**
2
+ * Signal Handler
3
+ *
4
+ * Graceful handling of Ctrl+C (SIGINT) and other signals.
5
+ * Ensures cleanup happens and migrations can be resumed.
6
+ */
7
+ import chalk from 'chalk';
8
+ // ─── Signal Handler Class ────────────────────────────────────
9
+ export class SignalHandler {
10
+ orchestrator;
11
+ cleanup;
12
+ message;
13
+ showResumeHint;
14
+ isHandling = false;
15
+ interruptCount = 0;
16
+ constructor(options = {}) {
17
+ this.orchestrator = options.orchestrator;
18
+ this.cleanup = options.cleanup;
19
+ this.message = options.message ?? 'Migration interrupted.';
20
+ this.showResumeHint = options.showResumeHint ?? true;
21
+ }
22
+ /**
23
+ * Register signal handlers
24
+ */
25
+ register() {
26
+ process.on('SIGINT', this.handleInterrupt);
27
+ process.on('SIGTERM', this.handleInterrupt);
28
+ // Handle uncaught errors
29
+ process.on('uncaughtException', this.handleUncaughtError);
30
+ process.on('unhandledRejection', this.handleUnhandledRejection);
31
+ }
32
+ /**
33
+ * Unregister signal handlers
34
+ */
35
+ unregister() {
36
+ process.off('SIGINT', this.handleInterrupt);
37
+ process.off('SIGTERM', this.handleInterrupt);
38
+ process.off('uncaughtException', this.handleUncaughtError);
39
+ process.off('unhandledRejection', this.handleUnhandledRejection);
40
+ }
41
+ /**
42
+ * Update the orchestrator reference
43
+ */
44
+ setOrchestrator(orchestrator) {
45
+ this.orchestrator = orchestrator;
46
+ }
47
+ /**
48
+ * Handle SIGINT/SIGTERM
49
+ */
50
+ handleInterrupt = async () => {
51
+ this.interruptCount++;
52
+ // Force exit on second interrupt
53
+ if (this.interruptCount > 1) {
54
+ console.log();
55
+ console.log(chalk.red('Force quit.'));
56
+ process.exit(1);
57
+ }
58
+ // Prevent concurrent handling
59
+ if (this.isHandling) {
60
+ return;
61
+ }
62
+ this.isHandling = true;
63
+ console.log();
64
+ console.log();
65
+ console.log(chalk.yellow.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
66
+ console.log(chalk.yellow.bold(' ⏸ Migration Interrupted'));
67
+ console.log(chalk.yellow.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
68
+ console.log();
69
+ // Save state if we have an orchestrator
70
+ if (this.orchestrator) {
71
+ const state = this.orchestrator.getState();
72
+ console.log(chalk.yellow(` ${this.message}`));
73
+ console.log();
74
+ console.log(chalk.white(` Phase: ${state.phase}`));
75
+ console.log(chalk.white(` Progress: ${Math.round(state.progress)}%`));
76
+ console.log();
77
+ if (this.showResumeHint) {
78
+ console.log(chalk.dim(` Your progress has been saved.`));
79
+ console.log(chalk.dim(` Resume with: ${chalk.cyan('savestate migrate --resume')}`));
80
+ console.log(chalk.dim(` Migration ID: ${state.id}`));
81
+ console.log();
82
+ }
83
+ }
84
+ // Run custom cleanup
85
+ if (this.cleanup) {
86
+ try {
87
+ console.log(chalk.dim(' Cleaning up...'));
88
+ await this.cleanup();
89
+ }
90
+ catch (error) {
91
+ console.log(chalk.red(` Cleanup error: ${error}`));
92
+ }
93
+ }
94
+ console.log(chalk.dim(' Press Ctrl+C again to force quit.'));
95
+ console.log();
96
+ // Exit gracefully
97
+ setTimeout(() => {
98
+ process.exit(130); // 128 + SIGINT(2)
99
+ }, 100);
100
+ };
101
+ /**
102
+ * Handle uncaught exceptions
103
+ */
104
+ handleUncaughtError = async (error) => {
105
+ console.error();
106
+ console.error(chalk.red.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
107
+ console.error(chalk.red.bold(' ✗ Unexpected Error'));
108
+ console.error(chalk.red.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
109
+ console.error();
110
+ console.error(chalk.red(` ${error.message}`));
111
+ console.error();
112
+ if (this.orchestrator && this.showResumeHint) {
113
+ const state = this.orchestrator.getState();
114
+ console.error(chalk.dim(` Migration state saved. Resume with:`));
115
+ console.error(chalk.dim(` savestate migrate --resume`));
116
+ console.error(chalk.dim(` Migration ID: ${state.id}`));
117
+ console.error();
118
+ }
119
+ if (this.cleanup) {
120
+ try {
121
+ await this.cleanup();
122
+ }
123
+ catch {
124
+ // Ignore cleanup errors during crash
125
+ }
126
+ }
127
+ process.exit(1);
128
+ };
129
+ /**
130
+ * Handle unhandled promise rejections
131
+ */
132
+ handleUnhandledRejection = (reason) => {
133
+ const error = reason instanceof Error ? reason : new Error(String(reason));
134
+ this.handleUncaughtError(error);
135
+ };
136
+ }
137
+ // ─── Convenience Function ────────────────────────────────────
138
+ let globalHandler = null;
139
+ /**
140
+ * Setup global signal handling
141
+ */
142
+ export function setupSignalHandler(options = {}) {
143
+ if (globalHandler) {
144
+ globalHandler.unregister();
145
+ }
146
+ globalHandler = new SignalHandler(options);
147
+ globalHandler.register();
148
+ return globalHandler;
149
+ }
150
+ /**
151
+ * Get the current signal handler
152
+ */
153
+ export function getSignalHandler() {
154
+ return globalHandler;
155
+ }
156
+ /**
157
+ * Cleanup signal handling
158
+ */
159
+ export function cleanupSignalHandler() {
160
+ if (globalHandler) {
161
+ globalHandler.unregister();
162
+ globalHandler = null;
163
+ }
164
+ }
165
+ //# sourceMappingURL=signal-handler.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"signal-handler.js","sourceRoot":"","sources":["../../src/cli/signal-handler.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,33 @@
1
+ /**
2
+ * Migration Summary Display
3
+ *
4
+ * Formats and displays migration results and compatibility reports.
5
+ */
6
+ import type { LoadResult, CompatibilityReport, MigrationState } from '../migrate/types.js';
7
+ export interface SummaryOptions {
8
+ /** Disable colors */
9
+ noColor?: boolean;
10
+ /** Show detailed breakdown */
11
+ detailed?: boolean;
12
+ }
13
+ /**
14
+ * Display migration success summary
15
+ */
16
+ export declare function showMigrationSummary(state: MigrationState, result: LoadResult, options?: SummaryOptions): void;
17
+ /**
18
+ * Display dry-run compatibility report
19
+ */
20
+ export declare function showCompatibilityReport(report: CompatibilityReport, options?: SummaryOptions): void;
21
+ /**
22
+ * Display review mode - items needing attention
23
+ */
24
+ export declare function showReviewItems(report: CompatibilityReport, options?: SummaryOptions): void;
25
+ /**
26
+ * Display migration resume information
27
+ */
28
+ export declare function showResumableMigrations(migrations: MigrationState[]): void;
29
+ /**
30
+ * Display failed migration details
31
+ */
32
+ export declare function showFailedMigration(state: MigrationState, options?: SummaryOptions): void;
33
+ //# sourceMappingURL=summary.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.d.ts","sourceRoot":"","sources":["../../src/cli/summary.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAGH,OAAO,KAAK,EACV,UAAU,EACV,mBAAmB,EAEnB,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAK7B,MAAM,WAAW,cAAc;IAC7B,qBAAqB;IACrB,OAAO,CAAC,EAAE,OAAO,CAAC;IAClB,8BAA8B;IAC9B,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAaD;;GAEG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,cAAc,EACrB,MAAM,EAAE,UAAU,EAClB,OAAO,GAAE,cAAmB,GAC3B,IAAI,CAoEN;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CACrC,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE,cAAmB,GAC3B,IAAI,CA8DN;AAED;;GAEG;AACH,wBAAgB,eAAe,CAC7B,MAAM,EAAE,mBAAmB,EAC3B,OAAO,GAAE,cAAmB,GAC3B,IAAI,CAsDN;AAED;;GAEG;AACH,wBAAgB,uBAAuB,CAAC,UAAU,EAAE,cAAc,EAAE,GAAG,IAAI,CAgC1E;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CACjC,KAAK,EAAE,cAAc,EACrB,OAAO,GAAE,cAAmB,GAC3B,IAAI,CAmBN"}
@@ -0,0 +1,296 @@
1
+ /**
2
+ * Migration Summary Display
3
+ *
4
+ * Formats and displays migration results and compatibility reports.
5
+ */
6
+ import chalk from 'chalk';
7
+ // ─── Platform Names ──────────────────────────────────────────
8
+ const PLATFORM_NAMES = {
9
+ chatgpt: 'ChatGPT',
10
+ claude: 'Claude',
11
+ gemini: 'Gemini',
12
+ copilot: 'Microsoft Copilot',
13
+ };
14
+ // ─── Summary Functions ───────────────────────────────────────
15
+ /**
16
+ * Display migration success summary
17
+ */
18
+ export function showMigrationSummary(state, result, options = {}) {
19
+ const sourceName = PLATFORM_NAMES[state.source] || state.source;
20
+ const targetName = PLATFORM_NAMES[state.target] || state.target;
21
+ console.log();
22
+ console.log(chalk.green.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
23
+ console.log(chalk.green.bold(' ✓ Migration Complete'));
24
+ console.log(chalk.green.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
25
+ console.log();
26
+ // Migration path
27
+ console.log(` ${chalk.white('From:')} ${chalk.cyan(sourceName)}`);
28
+ console.log(` ${chalk.white('To:')} ${chalk.cyan(targetName)}`);
29
+ console.log();
30
+ // What was created
31
+ console.log(chalk.white.bold(' Created:'));
32
+ if (result.loaded.instructions) {
33
+ console.log(` ${chalk.green('✓')} Custom Instructions`);
34
+ }
35
+ if (result.loaded.memories > 0) {
36
+ console.log(` ${chalk.green('✓')} ${result.loaded.memories} memories`);
37
+ }
38
+ if (result.loaded.files > 0) {
39
+ console.log(` ${chalk.green('✓')} ${result.loaded.files} files`);
40
+ }
41
+ if (result.loaded.customBots > 0) {
42
+ console.log(` ${chalk.green('✓')} ${result.loaded.customBots} custom bots`);
43
+ }
44
+ console.log();
45
+ // Created resources
46
+ if (result.created?.projectId) {
47
+ console.log(chalk.white.bold(' Resources:'));
48
+ console.log(` Project ID: ${chalk.cyan(result.created.projectId)}`);
49
+ if (result.created.projectUrl) {
50
+ console.log(` URL: ${chalk.cyan(result.created.projectUrl)}`);
51
+ }
52
+ console.log();
53
+ }
54
+ // Warnings
55
+ if (result.warnings.length > 0) {
56
+ console.log(chalk.yellow.bold(' Warnings:'));
57
+ result.warnings.forEach((w) => {
58
+ console.log(` ${chalk.yellow('⚠')} ${w}`);
59
+ });
60
+ console.log();
61
+ }
62
+ // Manual steps
63
+ if (result.manualSteps && result.manualSteps.length > 0) {
64
+ console.log(chalk.blue.bold(' Manual Steps Required:'));
65
+ result.manualSteps.forEach((step, i) => {
66
+ console.log(` ${i + 1}. ${step}`);
67
+ });
68
+ console.log();
69
+ }
70
+ // Migration ID for reference
71
+ console.log(chalk.dim(` Migration ID: ${state.id}`));
72
+ console.log(chalk.dim(` You can restore again with: savestate restore --to <platform>`));
73
+ console.log();
74
+ }
75
+ /**
76
+ * Display dry-run compatibility report
77
+ */
78
+ export function showCompatibilityReport(report, options = {}) {
79
+ const sourceName = PLATFORM_NAMES[report.source] || report.source;
80
+ const targetName = PLATFORM_NAMES[report.target] || report.target;
81
+ console.log();
82
+ console.log(chalk.cyan.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
83
+ console.log(chalk.cyan.bold(' 📋 Compatibility Report (Dry Run)'));
84
+ console.log(chalk.cyan.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
85
+ console.log();
86
+ // Migration path
87
+ console.log(` ${chalk.white('From:')} ${chalk.cyan(sourceName)}`);
88
+ console.log(` ${chalk.white('To:')} ${chalk.cyan(targetName)}`);
89
+ console.log();
90
+ // Summary box
91
+ console.log(chalk.white.bold(' Summary:'));
92
+ console.log(` ${chalk.green('✓')} ${report.summary.perfect} items will transfer perfectly`);
93
+ console.log(` ${chalk.yellow('⚠')} ${report.summary.adapted} items require adaptation`);
94
+ console.log(` ${chalk.red('✗')} ${report.summary.incompatible} items cannot be migrated`);
95
+ console.log();
96
+ // Group items by type
97
+ if (options.detailed !== false) {
98
+ const grouped = groupItemsByType(report.items);
99
+ for (const [type, items] of Object.entries(grouped)) {
100
+ const typeName = formatTypeName(type);
101
+ console.log(chalk.white.bold(` ${typeName}:`));
102
+ items.forEach((item) => {
103
+ const symbol = getStatusSymbol(item.status);
104
+ const color = getStatusColor(item.status);
105
+ console.log(` ${color(symbol)} ${item.name}`);
106
+ console.log(chalk.dim(` ${item.reason}`));
107
+ if (item.action) {
108
+ console.log(chalk.dim(` → ${item.action}`));
109
+ }
110
+ });
111
+ console.log();
112
+ }
113
+ }
114
+ // Recommendations
115
+ if (report.recommendations.length > 0) {
116
+ console.log(chalk.white.bold(' Recommendations:'));
117
+ report.recommendations.forEach((rec, i) => {
118
+ console.log(` ${i + 1}. ${rec}`);
119
+ });
120
+ console.log();
121
+ }
122
+ // Feasibility
123
+ console.log(` ${chalk.white('Feasibility:')} ${formatFeasibility(report.feasibility)}`);
124
+ console.log();
125
+ // Dry run notice
126
+ console.log(chalk.cyan.bold(' ─────────────────────────────────────────────────────'));
127
+ console.log(chalk.cyan(' This was a dry run. No changes were made.'));
128
+ console.log(chalk.cyan(' Remove --dry-run to perform the actual migration.'));
129
+ console.log(chalk.cyan.bold(' ─────────────────────────────────────────────────────'));
130
+ console.log();
131
+ }
132
+ /**
133
+ * Display review mode - items needing attention
134
+ */
135
+ export function showReviewItems(report, options = {}) {
136
+ const needsAttention = report.items.filter((item) => item.status === 'adapted' || item.status === 'incompatible');
137
+ if (needsAttention.length === 0) {
138
+ console.log();
139
+ console.log(chalk.green.bold(' ✓ All items transfer perfectly!'));
140
+ console.log(chalk.green(' No manual review needed.'));
141
+ console.log();
142
+ return;
143
+ }
144
+ console.log();
145
+ console.log(chalk.yellow.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
146
+ console.log(chalk.yellow.bold(' ⚠ Items Requiring Review'));
147
+ console.log(chalk.yellow.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
148
+ console.log();
149
+ // Show adapted items
150
+ const adapted = needsAttention.filter((i) => i.status === 'adapted');
151
+ if (adapted.length > 0) {
152
+ console.log(chalk.yellow.bold(' Adapted Items:'));
153
+ console.log(chalk.dim(' These items will be transformed to fit the target platform.'));
154
+ console.log();
155
+ adapted.forEach((item, i) => {
156
+ console.log(` ${chalk.yellow(`${i + 1}.`)} ${chalk.white.bold(item.name)}`);
157
+ console.log(` Type: ${formatTypeName(item.type)}`);
158
+ console.log(` Issue: ${item.reason}`);
159
+ if (item.action) {
160
+ console.log(` Action: ${chalk.cyan(item.action)}`);
161
+ }
162
+ console.log();
163
+ });
164
+ }
165
+ // Show incompatible items
166
+ const incompatible = needsAttention.filter((i) => i.status === 'incompatible');
167
+ if (incompatible.length > 0) {
168
+ console.log(chalk.red.bold(' Incompatible Items:'));
169
+ console.log(chalk.dim(' These items cannot be migrated.'));
170
+ console.log();
171
+ incompatible.forEach((item, i) => {
172
+ console.log(` ${chalk.red(`${i + 1}.`)} ${chalk.white.bold(item.name)}`);
173
+ console.log(` Type: ${formatTypeName(item.type)}`);
174
+ console.log(` Reason: ${item.reason}`);
175
+ if (item.action) {
176
+ console.log(` Alternative: ${chalk.cyan(item.action)}`);
177
+ }
178
+ console.log();
179
+ });
180
+ }
181
+ }
182
+ /**
183
+ * Display migration resume information
184
+ */
185
+ export function showResumableMigrations(migrations) {
186
+ const resumable = migrations.filter((m) => m.phase !== 'complete' && m.phase !== 'failed');
187
+ if (resumable.length === 0) {
188
+ console.log();
189
+ console.log(chalk.dim(' No interrupted migrations found.'));
190
+ console.log();
191
+ return;
192
+ }
193
+ console.log();
194
+ console.log(chalk.yellow.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
195
+ console.log(chalk.yellow.bold(' ⟳ Interrupted Migrations'));
196
+ console.log(chalk.yellow.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
197
+ console.log();
198
+ resumable.forEach((m, i) => {
199
+ const sourceName = PLATFORM_NAMES[m.source] || m.source;
200
+ const targetName = PLATFORM_NAMES[m.target] || m.target;
201
+ const started = new Date(m.startedAt).toLocaleString();
202
+ console.log(` ${i + 1}. ${chalk.cyan(m.id)}`);
203
+ console.log(` ${sourceName} → ${targetName}`);
204
+ console.log(` Phase: ${formatPhase(m.phase)} (${Math.round(m.progress)}%)`);
205
+ console.log(` Started: ${started}`);
206
+ console.log();
207
+ });
208
+ console.log(chalk.dim(' Resume with: savestate migrate --resume'));
209
+ console.log();
210
+ }
211
+ /**
212
+ * Display failed migration details
213
+ */
214
+ export function showFailedMigration(state, options = {}) {
215
+ console.log();
216
+ console.log(chalk.red.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
217
+ console.log(chalk.red.bold(' ✗ Migration Failed'));
218
+ console.log(chalk.red.bold('━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━'));
219
+ console.log();
220
+ console.log(` ${chalk.white('Phase:')} ${formatPhase(state.phase)}`);
221
+ console.log(` ${chalk.white('Error:')} ${chalk.red(state.error || 'Unknown error')}`);
222
+ console.log();
223
+ console.log(chalk.white.bold(' Options:'));
224
+ console.log(` 1. ${chalk.cyan('savestate migrate --resume')} - Retry from last checkpoint`);
225
+ console.log(` 2. Check authentication and permissions`);
226
+ console.log(` 3. Try with ${chalk.cyan('--dry-run')} to see compatibility issues`);
227
+ console.log();
228
+ console.log(chalk.dim(` Migration ID: ${state.id}`));
229
+ console.log();
230
+ }
231
+ // ─── Helper Functions ────────────────────────────────────────
232
+ function groupItemsByType(items) {
233
+ return items.reduce((groups, item) => {
234
+ const type = item.type;
235
+ if (!groups[type]) {
236
+ groups[type] = [];
237
+ }
238
+ groups[type].push(item);
239
+ return groups;
240
+ }, {});
241
+ }
242
+ function formatTypeName(type) {
243
+ const names = {
244
+ instructions: 'Custom Instructions',
245
+ memory: 'Memories',
246
+ conversation: 'Conversations',
247
+ file: 'Files',
248
+ customBot: 'Custom Bots/GPTs',
249
+ feature: 'Features/Capabilities',
250
+ };
251
+ return names[type] || type;
252
+ }
253
+ function getStatusSymbol(status) {
254
+ switch (status) {
255
+ case 'perfect':
256
+ return '✓';
257
+ case 'adapted':
258
+ return '⚠';
259
+ case 'incompatible':
260
+ return '✗';
261
+ }
262
+ }
263
+ function getStatusColor(status) {
264
+ switch (status) {
265
+ case 'perfect':
266
+ return chalk.green;
267
+ case 'adapted':
268
+ return chalk.yellow;
269
+ case 'incompatible':
270
+ return chalk.red;
271
+ }
272
+ }
273
+ function formatFeasibility(feasibility) {
274
+ switch (feasibility) {
275
+ case 'easy':
276
+ return chalk.green('Easy - Most items transfer cleanly');
277
+ case 'moderate':
278
+ return chalk.yellow('Moderate - Some items need adaptation');
279
+ case 'complex':
280
+ return chalk.yellow('Complex - Significant adaptation required');
281
+ case 'partial':
282
+ return chalk.red('Partial - Some items cannot be migrated');
283
+ }
284
+ }
285
+ function formatPhase(phase) {
286
+ const phases = {
287
+ pending: chalk.dim('Pending'),
288
+ extracting: chalk.blue('Extracting'),
289
+ transforming: chalk.yellow('Transforming'),
290
+ loading: chalk.magenta('Loading'),
291
+ complete: chalk.green('Complete'),
292
+ failed: chalk.red('Failed'),
293
+ };
294
+ return phases[phase] || phase;
295
+ }
296
+ //# sourceMappingURL=summary.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"summary.js","sourceRoot":"","sources":["../../src/cli/summary.ts"],"names":[],"mappings":"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"}
package/dist/cli.js CHANGED
@@ -110,8 +110,14 @@ program
110
110
  .option('-f, --from <platform>', 'Source platform to migrate from')
111
111
  .option('-t, --to <platform>', 'Target platform to migrate to')
112
112
  .option('-s, --snapshot <id>', 'Use existing snapshot instead of creating new one')
113
- .option('--dry-run', 'Show migration plan without making changes')
113
+ .option('--dry-run', 'Show compatibility report without making changes')
114
+ .option('--review', 'Inspect items needing manual attention')
115
+ .option('--resume', 'Resume an interrupted migration')
116
+ .option('-i, --include <types>', 'Only migrate specific types (instructions,memories,conversations,files,customBots)')
114
117
  .option('-l, --list', 'List available platforms and their capabilities')
118
+ .option('--no-color', 'Disable colorized output')
119
+ .option('--force', 'Skip confirmation prompts')
120
+ .option('-v, --verbose', 'Show detailed progress')
115
121
  .action(migrateCommand);
116
122
  // ─── savestate cloud ─────────────────────────────────────────
117
123
  import { cloudCommand } from './commands/cloud.js';
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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"}