@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,167 @@
1
+ /**
2
+ * Registry Tests
3
+ *
4
+ * Tests for extractor, transformer, and loader registries.
5
+ */
6
+ import { describe, it, expect, beforeEach } from 'vitest';
7
+ import { getExtractor, registerExtractor, listExtractors, hasExtractor, } from '../extractors/registry.js';
8
+ import { getTransformer, registerTransformer, listTransformers, hasTransformer, } from '../transformers/registry.js';
9
+ import { getLoader, registerLoader, listLoaders, hasLoader, } from '../loaders/registry.js';
10
+ import { registerMockPlugins } from '../testing/index.js';
11
+ describe('Extractor Registry', () => {
12
+ beforeEach(() => {
13
+ // Register mock plugins to ensure consistent state
14
+ registerMockPlugins();
15
+ });
16
+ it('should get registered extractor', () => {
17
+ const extractor = getExtractor('chatgpt');
18
+ expect(extractor).not.toBeNull();
19
+ expect(extractor?.platform).toBe('chatgpt');
20
+ });
21
+ it('should list all extractors', () => {
22
+ const extractors = listExtractors();
23
+ expect(extractors).toContain('chatgpt');
24
+ expect(extractors).toContain('claude');
25
+ });
26
+ it('should check if extractor exists', () => {
27
+ expect(hasExtractor('chatgpt')).toBe(true);
28
+ expect(hasExtractor('claude')).toBe(true);
29
+ expect(hasExtractor('gemini')).toBe(true); // Mock registered
30
+ });
31
+ it('should return null for non-registered platform without mocks', () => {
32
+ // This tests the underlying behavior - mock plugins register all platforms
33
+ // but the original registry only has chatgpt and claude
34
+ const extractor = getExtractor('copilot');
35
+ // With mocks, all platforms are registered
36
+ expect(extractor).not.toBeNull();
37
+ });
38
+ });
39
+ describe('Transformer Registry', () => {
40
+ beforeEach(() => {
41
+ registerMockPlugins();
42
+ });
43
+ it('should get registered transformer', () => {
44
+ const transformer = getTransformer('chatgpt', 'claude');
45
+ expect(transformer).not.toBeNull();
46
+ expect(transformer?.source).toBe('chatgpt');
47
+ expect(transformer?.target).toBe('claude');
48
+ });
49
+ it('should list all transformers', () => {
50
+ const transformers = listTransformers();
51
+ expect(transformers.some((t) => t.source === 'chatgpt' && t.target === 'claude')).toBe(true);
52
+ expect(transformers.some((t) => t.source === 'claude' && t.target === 'chatgpt')).toBe(true);
53
+ });
54
+ it('should check if transformer exists', () => {
55
+ expect(hasTransformer('chatgpt', 'claude')).toBe(true);
56
+ expect(hasTransformer('claude', 'chatgpt')).toBe(true);
57
+ });
58
+ it('should return null for non-registered path', () => {
59
+ // Mock plugins register common paths but not all combinations
60
+ const transformer = getTransformer('copilot', 'gemini');
61
+ expect(transformer).toBeNull();
62
+ });
63
+ });
64
+ describe('Loader Registry', () => {
65
+ beforeEach(() => {
66
+ registerMockPlugins();
67
+ });
68
+ it('should get registered loader', () => {
69
+ const loader = getLoader('claude');
70
+ expect(loader).not.toBeNull();
71
+ expect(loader?.platform).toBe('claude');
72
+ });
73
+ it('should list all loaders', () => {
74
+ const loaders = listLoaders();
75
+ expect(loaders).toContain('chatgpt');
76
+ expect(loaders).toContain('claude');
77
+ });
78
+ it('should check if loader exists', () => {
79
+ expect(hasLoader('chatgpt')).toBe(true);
80
+ expect(hasLoader('claude')).toBe(true);
81
+ });
82
+ });
83
+ describe('Registry Integration', () => {
84
+ it('should allow registering custom implementations', () => {
85
+ const customPlatform = 'gemini';
86
+ // Register custom extractor
87
+ let extractCalled = false;
88
+ registerExtractor(customPlatform, () => ({
89
+ platform: customPlatform,
90
+ version: 'custom',
91
+ canExtract: async () => true,
92
+ extract: async () => {
93
+ extractCalled = true;
94
+ return {
95
+ version: '1.0',
96
+ id: 'custom',
97
+ source: {
98
+ platform: customPlatform,
99
+ extractedAt: new Date().toISOString(),
100
+ extractorVersion: 'custom',
101
+ },
102
+ contents: {},
103
+ metadata: {
104
+ totalItems: 0,
105
+ itemCounts: {
106
+ instructions: 0,
107
+ memories: 0,
108
+ conversations: 0,
109
+ files: 0,
110
+ customBots: 0,
111
+ },
112
+ warnings: [],
113
+ errors: [],
114
+ },
115
+ };
116
+ },
117
+ getProgress: () => 100,
118
+ }));
119
+ const extractor = getExtractor(customPlatform);
120
+ expect(extractor?.version).toBe('custom');
121
+ });
122
+ it('should allow registering custom transformers', () => {
123
+ registerTransformer('gemini', 'copilot', () => ({
124
+ source: 'gemini',
125
+ target: 'copilot',
126
+ version: 'custom-transformer',
127
+ analyze: async (bundle) => ({
128
+ source: 'gemini',
129
+ target: 'copilot',
130
+ generatedAt: new Date().toISOString(),
131
+ summary: { perfect: 1, adapted: 0, incompatible: 0, total: 1 },
132
+ items: [],
133
+ recommendations: [],
134
+ feasibility: 'easy',
135
+ }),
136
+ transform: async (bundle) => ({
137
+ ...bundle,
138
+ target: {
139
+ platform: 'copilot',
140
+ transformedAt: new Date().toISOString(),
141
+ transformerVersion: 'custom-transformer',
142
+ },
143
+ }),
144
+ }));
145
+ expect(hasTransformer('gemini', 'copilot')).toBe(true);
146
+ const transformer = getTransformer('gemini', 'copilot');
147
+ expect(transformer?.version).toBe('custom-transformer');
148
+ });
149
+ it('should allow registering custom loaders', () => {
150
+ registerLoader('gemini', () => ({
151
+ platform: 'gemini',
152
+ version: 'custom-loader',
153
+ canLoad: async () => true,
154
+ load: async () => ({
155
+ success: true,
156
+ loaded: { instructions: true, memories: 0, files: 0, customBots: 0 },
157
+ warnings: [],
158
+ errors: [],
159
+ }),
160
+ getProgress: () => 100,
161
+ }));
162
+ expect(hasLoader('gemini')).toBe(true);
163
+ const loader = getLoader('gemini');
164
+ expect(loader?.version).toBe('custom-loader');
165
+ });
166
+ });
167
+ //# sourceMappingURL=registry.test.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"registry.test.js","sourceRoot":"","sources":["../../../src/migrate/__tests__/registry.test.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,47 @@
1
+ /**
2
+ * Compatibility Report Generator
3
+ *
4
+ * Analyzes source data against target platform capabilities and generates
5
+ * a detailed compatibility report showing what will/won't transfer cleanly.
6
+ *
7
+ * Categories:
8
+ * - ✓ Perfect: Transfers without modification
9
+ * - ⚠ Adapted: Requires adaptation/reformatting
10
+ * - ✗ Incompatible: Cannot be migrated
11
+ */
12
+ import type { MigrationBundle, CompatibilityReport, CompatibilityItem, Platform } from './types.js';
13
+ export interface CompatibilityReportOptions {
14
+ /** Output format */
15
+ format?: 'cli' | 'json';
16
+ /** Include detailed item breakdown */
17
+ detailed?: boolean;
18
+ }
19
+ export declare class CompatibilityAnalyzer {
20
+ private readonly source;
21
+ private readonly target;
22
+ private readonly sourceCapabilities;
23
+ private readonly targetCapabilities;
24
+ constructor(source: Platform, target: Platform);
25
+ /**
26
+ * Analyze a migration bundle and generate a compatibility report.
27
+ */
28
+ analyze(bundle: MigrationBundle): Promise<CompatibilityReport>;
29
+ private analyzeInstructions;
30
+ private analyzeMemories;
31
+ private analyzeConversations;
32
+ private analyzeFiles;
33
+ private analyzeCustomBots;
34
+ private calculateFeasibility;
35
+ }
36
+ export declare function generateRecommendations(items: CompatibilityItem[], source: Platform, target: Platform): string[];
37
+ export declare function formatReport(report: CompatibilityReport): string;
38
+ export declare function formatReportJson(report: CompatibilityReport): string;
39
+ export declare function analyzeCompatibility(bundle: MigrationBundle, target: Platform, options?: CompatibilityReportOptions): Promise<CompatibilityReport>;
40
+ export interface CompatibilityCommandOptions {
41
+ from?: string;
42
+ to?: string;
43
+ json?: boolean;
44
+ dryRun?: boolean;
45
+ }
46
+ export declare function compatibilityCommand(options: CompatibilityCommandOptions): Promise<void>;
47
+ //# sourceMappingURL=compatibility.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"compatibility.d.ts","sourceRoot":"","sources":["../../src/migrate/compatibility.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;GAUG;AAEH,OAAO,KAAK,EACV,eAAe,EACf,mBAAmB,EACnB,iBAAiB,EAEjB,QAAQ,EAET,MAAM,YAAY,CAAC;AAwEpB,MAAM,WAAW,0BAA0B;IACzC,oBAAoB;IACpB,MAAM,CAAC,EAAE,KAAK,GAAG,MAAM,CAAC;IACxB,sCAAsC;IACtC,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAID,qBAAa,qBAAqB;IAChC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,MAAM,CAAW;IAClC,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuB;IAC1D,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAuB;gBAE9C,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ;IAO9C;;OAEG;IACG,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAiDpE,OAAO,CAAC,mBAAmB;IAyC3B,OAAO,CAAC,eAAe;IAqDvB,OAAO,CAAC,oBAAoB;IAsB5B,OAAO,CAAC,YAAY;IAmCpB,OAAO,CAAC,iBAAiB;IA0DzB,OAAO,CAAC,oBAAoB;CAmB7B;AAID,wBAAgB,uBAAuB,CACrC,KAAK,EAAE,iBAAiB,EAAE,EAC1B,MAAM,EAAE,QAAQ,EAChB,MAAM,EAAE,QAAQ,GACf,MAAM,EAAE,CAiDV;AAID,wBAAgB,YAAY,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CA+ChE;AAED,wBAAgB,gBAAgB,CAAC,MAAM,EAAE,mBAAmB,GAAG,MAAM,CAEpE;AAID,wBAAsB,oBAAoB,CACxC,MAAM,EAAE,eAAe,EACvB,MAAM,EAAE,QAAQ,EAChB,OAAO,CAAC,EAAE,0BAA0B,GACnC,OAAO,CAAC,mBAAmB,CAAC,CAI9B;AA4DD,MAAM,WAAW,2BAA2B;IAC1C,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,oBAAoB,CAAC,OAAO,EAAE,2BAA2B,GAAG,OAAO,CAAC,IAAI,CAAC,CAK9F"}