@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.
- package/dist/cli/__tests__/progress.test.d.ts +5 -0
- package/dist/cli/__tests__/progress.test.d.ts.map +1 -0
- package/dist/cli/__tests__/progress.test.js +212 -0
- package/dist/cli/__tests__/progress.test.js.map +1 -0
- package/dist/cli/__tests__/signal-handler.test.d.ts +5 -0
- package/dist/cli/__tests__/signal-handler.test.d.ts.map +1 -0
- package/dist/cli/__tests__/signal-handler.test.js +99 -0
- package/dist/cli/__tests__/signal-handler.test.js.map +1 -0
- package/dist/cli/__tests__/summary.test.d.ts +5 -0
- package/dist/cli/__tests__/summary.test.d.ts.map +1 -0
- package/dist/cli/__tests__/summary.test.js +242 -0
- package/dist/cli/__tests__/summary.test.js.map +1 -0
- package/dist/cli/index.d.ts +10 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +10 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/progress.d.ts +86 -0
- package/dist/cli/progress.d.ts.map +1 -0
- package/dist/cli/progress.js +205 -0
- package/dist/cli/progress.js.map +1 -0
- package/dist/cli/prompts.d.ts +49 -0
- package/dist/cli/prompts.d.ts.map +1 -0
- package/dist/cli/prompts.js +266 -0
- package/dist/cli/prompts.js.map +1 -0
- package/dist/cli/signal-handler.d.ts +63 -0
- package/dist/cli/signal-handler.d.ts.map +1 -0
- package/dist/cli/signal-handler.js +165 -0
- package/dist/cli/signal-handler.js.map +1 -0
- package/dist/cli/summary.d.ts +33 -0
- package/dist/cli/summary.d.ts.map +1 -0
- package/dist/cli/summary.js +296 -0
- package/dist/cli/summary.js.map +1 -0
- package/dist/cli.js +7 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/migrate.d.ts +18 -4
- package/dist/commands/migrate.d.ts.map +1 -1
- package/dist/commands/migrate.js +324 -163
- package/dist/commands/migrate.js.map +1 -1
- package/dist/migrate/__tests__/capabilities.test.d.ts +7 -0
- package/dist/migrate/__tests__/capabilities.test.d.ts.map +1 -0
- package/dist/migrate/__tests__/capabilities.test.js +90 -0
- package/dist/migrate/__tests__/capabilities.test.js.map +1 -0
- package/dist/migrate/__tests__/chatgpt-loader.test.d.ts +7 -0
- package/dist/migrate/__tests__/chatgpt-loader.test.d.ts.map +1 -0
- package/dist/migrate/__tests__/chatgpt-loader.test.js +889 -0
- package/dist/migrate/__tests__/chatgpt-loader.test.js.map +1 -0
- package/dist/migrate/__tests__/edge-cases.test.d.ts +7 -0
- package/dist/migrate/__tests__/edge-cases.test.d.ts.map +1 -0
- package/dist/migrate/__tests__/edge-cases.test.js +787 -0
- package/dist/migrate/__tests__/edge-cases.test.js.map +1 -0
- package/dist/migrate/__tests__/error-recovery.test.d.ts +7 -0
- package/dist/migrate/__tests__/error-recovery.test.d.ts.map +1 -0
- package/dist/migrate/__tests__/error-recovery.test.js +461 -0
- package/dist/migrate/__tests__/error-recovery.test.js.map +1 -0
- package/dist/migrate/__tests__/integration.test.d.ts +7 -0
- package/dist/migrate/__tests__/integration.test.d.ts.map +1 -0
- package/dist/migrate/__tests__/integration.test.js +536 -0
- package/dist/migrate/__tests__/integration.test.js.map +1 -0
- package/dist/migrate/__tests__/performance.test.d.ts +7 -0
- package/dist/migrate/__tests__/performance.test.d.ts.map +1 -0
- package/dist/migrate/__tests__/performance.test.js +478 -0
- package/dist/migrate/__tests__/performance.test.js.map +1 -0
- package/dist/migrate/__tests__/registry.test.d.ts +7 -0
- package/dist/migrate/__tests__/registry.test.d.ts.map +1 -0
- package/dist/migrate/__tests__/registry.test.js +167 -0
- package/dist/migrate/__tests__/registry.test.js.map +1 -0
- package/dist/migrate/compatibility.d.ts +47 -0
- package/dist/migrate/compatibility.d.ts.map +1 -0
- package/dist/migrate/compatibility.js +468 -0
- package/dist/migrate/compatibility.js.map +1 -0
- package/dist/migrate/extractors/__tests__/claude.test.d.ts +12 -0
- package/dist/migrate/extractors/__tests__/claude.test.d.ts.map +1 -0
- package/dist/migrate/extractors/__tests__/claude.test.js +789 -0
- package/dist/migrate/extractors/__tests__/claude.test.js.map +1 -0
- package/dist/migrate/extractors/claude.d.ts +69 -0
- package/dist/migrate/extractors/claude.d.ts.map +1 -0
- package/dist/migrate/extractors/claude.js +1136 -0
- package/dist/migrate/extractors/claude.js.map +1 -0
- package/dist/migrate/extractors/registry.js +3 -2
- package/dist/migrate/extractors/registry.js.map +1 -1
- package/dist/migrate/loaders/chatgpt.d.ts +72 -0
- package/dist/migrate/loaders/chatgpt.d.ts.map +1 -0
- package/dist/migrate/loaders/chatgpt.js +691 -0
- package/dist/migrate/loaders/chatgpt.js.map +1 -0
- package/dist/migrate/loaders/registry.js +3 -2
- package/dist/migrate/loaders/registry.js.map +1 -1
- package/dist/migrate/types.d.ts +2 -0
- package/dist/migrate/types.d.ts.map +1 -1
- 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"}
|