@savestate/cli 0.6.0 → 0.7.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/migrate/__tests__/claude-loader.test.d.ts +7 -0
- package/dist/migrate/__tests__/claude-loader.test.d.ts.map +1 -0
- package/dist/migrate/__tests__/claude-loader.test.js +544 -0
- package/dist/migrate/__tests__/claude-loader.test.js.map +1 -0
- package/dist/migrate/__tests__/orchestrator.test.d.ts +8 -0
- package/dist/migrate/__tests__/orchestrator.test.d.ts.map +1 -0
- package/dist/migrate/__tests__/orchestrator.test.js +355 -0
- package/dist/migrate/__tests__/orchestrator.test.js.map +1 -0
- package/dist/migrate/extractors/__tests__/chatgpt.test.d.ts +12 -0
- package/dist/migrate/extractors/__tests__/chatgpt.test.d.ts.map +1 -0
- package/dist/migrate/extractors/__tests__/chatgpt.test.js +522 -0
- package/dist/migrate/extractors/__tests__/chatgpt.test.js.map +1 -0
- package/dist/migrate/extractors/chatgpt.d.ts +70 -0
- package/dist/migrate/extractors/chatgpt.d.ts.map +1 -0
- package/dist/migrate/extractors/chatgpt.js +791 -0
- package/dist/migrate/extractors/chatgpt.js.map +1 -0
- package/dist/migrate/extractors/registry.js +3 -2
- package/dist/migrate/extractors/registry.js.map +1 -1
- package/dist/migrate/index.d.ts +6 -1
- package/dist/migrate/index.d.ts.map +1 -1
- package/dist/migrate/index.js +12 -1
- package/dist/migrate/index.js.map +1 -1
- package/dist/migrate/loaders/claude.d.ts +61 -0
- package/dist/migrate/loaders/claude.d.ts.map +1 -0
- package/dist/migrate/loaders/claude.js +433 -0
- package/dist/migrate/loaders/claude.js.map +1 -0
- package/dist/migrate/loaders/registry.js +3 -2
- package/dist/migrate/loaders/registry.js.map +1 -1
- package/dist/migrate/orchestrator.d.ts +75 -1
- package/dist/migrate/orchestrator.d.ts.map +1 -1
- package/dist/migrate/orchestrator.js +215 -19
- package/dist/migrate/orchestrator.js.map +1 -1
- package/dist/migrate/testing/index.d.ts +28 -0
- package/dist/migrate/testing/index.d.ts.map +1 -0
- package/dist/migrate/testing/index.js +55 -0
- package/dist/migrate/testing/index.js.map +1 -0
- package/dist/migrate/testing/mock-extractor.d.ts +30 -0
- package/dist/migrate/testing/mock-extractor.d.ts.map +1 -0
- package/dist/migrate/testing/mock-extractor.js +137 -0
- package/dist/migrate/testing/mock-extractor.js.map +1 -0
- package/dist/migrate/testing/mock-loader.d.ts +36 -0
- package/dist/migrate/testing/mock-loader.d.ts.map +1 -0
- package/dist/migrate/testing/mock-loader.js +81 -0
- package/dist/migrate/testing/mock-loader.js.map +1 -0
- package/dist/migrate/testing/mock-transformer.d.ts +26 -0
- package/dist/migrate/testing/mock-transformer.d.ts.map +1 -0
- package/dist/migrate/testing/mock-transformer.js +185 -0
- package/dist/migrate/testing/mock-transformer.js.map +1 -0
- package/dist/migrate/transformers/__tests__/chatgpt-to-claude.test.d.ts +5 -0
- package/dist/migrate/transformers/__tests__/chatgpt-to-claude.test.d.ts.map +1 -0
- package/dist/migrate/transformers/__tests__/chatgpt-to-claude.test.js +333 -0
- package/dist/migrate/transformers/__tests__/chatgpt-to-claude.test.js.map +1 -0
- package/dist/migrate/transformers/__tests__/claude-to-chatgpt.test.d.ts +5 -0
- package/dist/migrate/transformers/__tests__/claude-to-chatgpt.test.d.ts.map +1 -0
- package/dist/migrate/transformers/__tests__/claude-to-chatgpt.test.js +333 -0
- package/dist/migrate/transformers/__tests__/claude-to-chatgpt.test.js.map +1 -0
- package/dist/migrate/transformers/__tests__/rules.test.d.ts +5 -0
- package/dist/migrate/transformers/__tests__/rules.test.d.ts.map +1 -0
- package/dist/migrate/transformers/__tests__/rules.test.js +375 -0
- package/dist/migrate/transformers/__tests__/rules.test.js.map +1 -0
- package/dist/migrate/transformers/chatgpt-to-claude.d.ts +40 -0
- package/dist/migrate/transformers/chatgpt-to-claude.d.ts.map +1 -0
- package/dist/migrate/transformers/chatgpt-to-claude.js +443 -0
- package/dist/migrate/transformers/chatgpt-to-claude.js.map +1 -0
- package/dist/migrate/transformers/claude-to-chatgpt.d.ts +41 -0
- package/dist/migrate/transformers/claude-to-chatgpt.d.ts.map +1 -0
- package/dist/migrate/transformers/claude-to-chatgpt.js +532 -0
- package/dist/migrate/transformers/claude-to-chatgpt.js.map +1 -0
- package/dist/migrate/transformers/registry.js +6 -4
- package/dist/migrate/transformers/registry.js.map +1 -1
- package/dist/migrate/transformers/rules.d.ts +168 -0
- package/dist/migrate/transformers/rules.d.ts.map +1 -0
- package/dist/migrate/transformers/rules.js +487 -0
- package/dist/migrate/transformers/rules.js.map +1 -0
- package/package.json +6 -2
|
@@ -0,0 +1,137 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock Extractor for Testing
|
|
3
|
+
*
|
|
4
|
+
* Simulates extracting data from a platform for testing the orchestrator.
|
|
5
|
+
*/
|
|
6
|
+
import { randomBytes } from 'node:crypto';
|
|
7
|
+
export class MockExtractor {
|
|
8
|
+
platform;
|
|
9
|
+
version = '1.0.0-mock';
|
|
10
|
+
options;
|
|
11
|
+
progress = 0;
|
|
12
|
+
constructor(platform, options = {}) {
|
|
13
|
+
this.platform = platform;
|
|
14
|
+
this.options = options;
|
|
15
|
+
}
|
|
16
|
+
async canExtract() {
|
|
17
|
+
return this.options.canExtractResult ?? true;
|
|
18
|
+
}
|
|
19
|
+
async extract(options) {
|
|
20
|
+
this.progress = 0;
|
|
21
|
+
// Simulate delay
|
|
22
|
+
if (this.options.delayMs) {
|
|
23
|
+
const steps = 10;
|
|
24
|
+
const stepDelay = this.options.delayMs / steps;
|
|
25
|
+
for (let i = 0; i < steps; i++) {
|
|
26
|
+
await new Promise((r) => setTimeout(r, stepDelay));
|
|
27
|
+
this.progress = ((i + 1) / steps) * 100;
|
|
28
|
+
options.onProgress?.(this.progress / 100, `Extracting step ${i + 1}/${steps}`);
|
|
29
|
+
}
|
|
30
|
+
}
|
|
31
|
+
// Simulate failure
|
|
32
|
+
if (this.options.shouldFail) {
|
|
33
|
+
throw new Error(this.options.failureMessage ?? 'Mock extraction failed');
|
|
34
|
+
}
|
|
35
|
+
// Return custom bundle or generate a mock one
|
|
36
|
+
if (this.options.customBundle) {
|
|
37
|
+
return this.options.customBundle;
|
|
38
|
+
}
|
|
39
|
+
return this.generateMockBundle();
|
|
40
|
+
}
|
|
41
|
+
getProgress() {
|
|
42
|
+
return this.progress;
|
|
43
|
+
}
|
|
44
|
+
generateMockBundle() {
|
|
45
|
+
const bundleId = `bundle_${randomBytes(8).toString('hex')}`;
|
|
46
|
+
return {
|
|
47
|
+
version: '1.0',
|
|
48
|
+
id: bundleId,
|
|
49
|
+
source: {
|
|
50
|
+
platform: this.platform,
|
|
51
|
+
extractedAt: new Date().toISOString(),
|
|
52
|
+
accountId: 'mock-account-123',
|
|
53
|
+
extractorVersion: this.version,
|
|
54
|
+
},
|
|
55
|
+
contents: {
|
|
56
|
+
instructions: {
|
|
57
|
+
content: `Mock instructions from ${this.platform}.\n\nThis is a test instruction set with multiple paragraphs.\n\nIt includes guidance on how the AI should behave.`,
|
|
58
|
+
length: 150,
|
|
59
|
+
sections: [
|
|
60
|
+
{ title: 'Identity', content: 'I am a helpful assistant', priority: 'high' },
|
|
61
|
+
{ title: 'Guidelines', content: 'Be helpful, accurate, and safe', priority: 'medium' },
|
|
62
|
+
],
|
|
63
|
+
},
|
|
64
|
+
memories: {
|
|
65
|
+
entries: [
|
|
66
|
+
{
|
|
67
|
+
id: 'mem_1',
|
|
68
|
+
content: 'User prefers concise responses',
|
|
69
|
+
createdAt: new Date().toISOString(),
|
|
70
|
+
category: 'preferences',
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
id: 'mem_2',
|
|
74
|
+
content: 'User is a software developer',
|
|
75
|
+
createdAt: new Date().toISOString(),
|
|
76
|
+
category: 'context',
|
|
77
|
+
},
|
|
78
|
+
{
|
|
79
|
+
id: 'mem_3',
|
|
80
|
+
content: 'User lives in New York',
|
|
81
|
+
createdAt: new Date().toISOString(),
|
|
82
|
+
category: 'context',
|
|
83
|
+
},
|
|
84
|
+
],
|
|
85
|
+
count: 3,
|
|
86
|
+
},
|
|
87
|
+
conversations: {
|
|
88
|
+
path: 'conversations/',
|
|
89
|
+
count: 5,
|
|
90
|
+
messageCount: 42,
|
|
91
|
+
summaries: [
|
|
92
|
+
{
|
|
93
|
+
id: 'conv_1',
|
|
94
|
+
title: 'Project Discussion',
|
|
95
|
+
messageCount: 12,
|
|
96
|
+
createdAt: new Date().toISOString(),
|
|
97
|
+
updatedAt: new Date().toISOString(),
|
|
98
|
+
},
|
|
99
|
+
{
|
|
100
|
+
id: 'conv_2',
|
|
101
|
+
title: 'Code Review',
|
|
102
|
+
messageCount: 30,
|
|
103
|
+
createdAt: new Date().toISOString(),
|
|
104
|
+
updatedAt: new Date().toISOString(),
|
|
105
|
+
},
|
|
106
|
+
],
|
|
107
|
+
},
|
|
108
|
+
files: {
|
|
109
|
+
files: [
|
|
110
|
+
{
|
|
111
|
+
id: 'file_1',
|
|
112
|
+
filename: 'project-notes.md',
|
|
113
|
+
mimeType: 'text/markdown',
|
|
114
|
+
size: 2048,
|
|
115
|
+
path: 'files/project-notes.md',
|
|
116
|
+
},
|
|
117
|
+
],
|
|
118
|
+
count: 1,
|
|
119
|
+
totalSize: 2048,
|
|
120
|
+
},
|
|
121
|
+
},
|
|
122
|
+
metadata: {
|
|
123
|
+
totalItems: 10,
|
|
124
|
+
itemCounts: {
|
|
125
|
+
instructions: 1,
|
|
126
|
+
memories: 3,
|
|
127
|
+
conversations: 5,
|
|
128
|
+
files: 1,
|
|
129
|
+
customBots: 0,
|
|
130
|
+
},
|
|
131
|
+
warnings: [],
|
|
132
|
+
errors: [],
|
|
133
|
+
},
|
|
134
|
+
};
|
|
135
|
+
}
|
|
136
|
+
}
|
|
137
|
+
//# sourceMappingURL=mock-extractor.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-extractor.js","sourceRoot":"","sources":["../../../src/migrate/testing/mock-extractor.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAQH,OAAO,EAAE,WAAW,EAAE,MAAM,aAAa,CAAC;AAe1C,MAAM,OAAO,aAAa;IACf,QAAQ,CAAW;IACnB,OAAO,GAAG,YAAY,CAAC;IAExB,OAAO,CAAuB;IAC9B,QAAQ,GAAG,CAAC,CAAC;IAErB,YAAY,QAAkB,EAAE,UAAgC,EAAE;QAChE,IAAI,CAAC,QAAQ,GAAG,QAAQ,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,OAAO,CAAC;IACzB,CAAC;IAED,KAAK,CAAC,UAAU;QACd,OAAO,IAAI,CAAC,OAAO,CAAC,gBAAgB,IAAI,IAAI,CAAC;IAC/C,CAAC;IAED,KAAK,CAAC,OAAO,CAAC,OAAuB;QACnC,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC;QAElB,iBAAiB;QACjB,IAAI,IAAI,CAAC,OAAO,CAAC,OAAO,EAAE,CAAC;YACzB,MAAM,KAAK,GAAG,EAAE,CAAC;YACjB,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,OAAO,GAAG,KAAK,CAAC;YAC/C,KAAK,IAAI,CAAC,GAAG,CAAC,EAAE,CAAC,GAAG,KAAK,EAAE,CAAC,EAAE,EAAE,CAAC;gBAC/B,MAAM,IAAI,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,UAAU,CAAC,CAAC,EAAE,SAAS,CAAC,CAAC,CAAC;gBACnD,IAAI,CAAC,QAAQ,GAAG,CAAC,CAAC,CAAC,GAAG,CAAC,CAAC,GAAG,KAAK,CAAC,GAAG,GAAG,CAAC;gBACxC,OAAO,CAAC,UAAU,EAAE,CAAC,IAAI,CAAC,QAAQ,GAAG,GAAG,EAAE,mBAAmB,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC,CAAC;YACjF,CAAC;QACH,CAAC;QAED,mBAAmB;QACnB,IAAI,IAAI,CAAC,OAAO,CAAC,UAAU,EAAE,CAAC;YAC5B,MAAM,IAAI,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,cAAc,IAAI,wBAAwB,CAAC,CAAC;QAC3E,CAAC;QAED,8CAA8C;QAC9C,IAAI,IAAI,CAAC,OAAO,CAAC,YAAY,EAAE,CAAC;YAC9B,OAAO,IAAI,CAAC,OAAO,CAAC,YAAY,CAAC;QACnC,CAAC;QAED,OAAO,IAAI,CAAC,kBAAkB,EAAE,CAAC;IACnC,CAAC;IAED,WAAW;QACT,OAAO,IAAI,CAAC,QAAQ,CAAC;IACvB,CAAC;IAEO,kBAAkB;QACxB,MAAM,QAAQ,GAAG,UAAU,WAAW,CAAC,CAAC,CAAC,CAAC,QAAQ,CAAC,KAAK,CAAC,EAAE,CAAC;QAE5D,OAAO;YACL,OAAO,EAAE,KAAK;YACd,EAAE,EAAE,QAAQ;YACZ,MAAM,EAAE;gBACN,QAAQ,EAAE,IAAI,CAAC,QAAQ;gBACvB,WAAW,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;gBACrC,SAAS,EAAE,kBAAkB;gBAC7B,gBAAgB,EAAE,IAAI,CAAC,OAAO;aAC/B;YACD,QAAQ,EAAE;gBACR,YAAY,EAAE;oBACZ,OAAO,EAAE,0BAA0B,IAAI,CAAC,QAAQ,oHAAoH;oBACpK,MAAM,EAAE,GAAG;oBACX,QAAQ,EAAE;wBACR,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,0BAA0B,EAAE,QAAQ,EAAE,MAAM,EAAE;wBAC5E,EAAE,KAAK,EAAE,YAAY,EAAE,OAAO,EAAE,gCAAgC,EAAE,QAAQ,EAAE,QAAQ,EAAE;qBACvF;iBACF;gBACD,QAAQ,EAAE;oBACR,OAAO,EAAE;wBACP;4BACE,EAAE,EAAE,OAAO;4BACX,OAAO,EAAE,gCAAgC;4BACzC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,QAAQ,EAAE,aAAa;yBACxB;wBACD;4BACE,EAAE,EAAE,OAAO;4BACX,OAAO,EAAE,8BAA8B;4BACvC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,QAAQ,EAAE,SAAS;yBACpB;wBACD;4BACE,EAAE,EAAE,OAAO;4BACX,OAAO,EAAE,wBAAwB;4BACjC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,QAAQ,EAAE,SAAS;yBACpB;qBACF;oBACD,KAAK,EAAE,CAAC;iBACT;gBACD,aAAa,EAAE;oBACb,IAAI,EAAE,gBAAgB;oBACtB,KAAK,EAAE,CAAC;oBACR,YAAY,EAAE,EAAE;oBAChB,SAAS,EAAE;wBACT;4BACE,EAAE,EAAE,QAAQ;4BACZ,KAAK,EAAE,oBAAoB;4BAC3B,YAAY,EAAE,EAAE;4BAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACpC;wBACD;4BACE,EAAE,EAAE,QAAQ;4BACZ,KAAK,EAAE,aAAa;4BACpB,YAAY,EAAE,EAAE;4BAChB,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;4BACnC,SAAS,EAAE,IAAI,IAAI,EAAE,CAAC,WAAW,EAAE;yBACpC;qBACF;iBACF;gBACD,KAAK,EAAE;oBACL,KAAK,EAAE;wBACL;4BACE,EAAE,EAAE,QAAQ;4BACZ,QAAQ,EAAE,kBAAkB;4BAC5B,QAAQ,EAAE,eAAe;4BACzB,IAAI,EAAE,IAAI;4BACV,IAAI,EAAE,wBAAwB;yBAC/B;qBACF;oBACD,KAAK,EAAE,CAAC;oBACR,SAAS,EAAE,IAAI;iBAChB;aACF;YACD,QAAQ,EAAE;gBACR,UAAU,EAAE,EAAE;gBACd,UAAU,EAAE;oBACV,YAAY,EAAE,CAAC;oBACf,QAAQ,EAAE,CAAC;oBACX,aAAa,EAAE,CAAC;oBAChB,KAAK,EAAE,CAAC;oBACR,UAAU,EAAE,CAAC;iBACd;gBACD,QAAQ,EAAE,EAAE;gBACZ,MAAM,EAAE,EAAE;aACX;SACF,CAAC;IACJ,CAAC;CACF"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock Loader for Testing
|
|
3
|
+
*
|
|
4
|
+
* Simulates loading data to a platform for testing the orchestrator.
|
|
5
|
+
*/
|
|
6
|
+
import type { Platform, Loader, LoadOptions, LoadResult, MigrationBundle } from '../types.js';
|
|
7
|
+
export interface MockLoaderOptions {
|
|
8
|
+
/** Simulate failure */
|
|
9
|
+
shouldFail?: boolean;
|
|
10
|
+
/** Failure message */
|
|
11
|
+
failureMessage?: string;
|
|
12
|
+
/** Delay loading by N ms */
|
|
13
|
+
delayMs?: number;
|
|
14
|
+
/** Custom load result */
|
|
15
|
+
customResult?: LoadResult;
|
|
16
|
+
/** Whether canLoad returns true */
|
|
17
|
+
canLoadResult?: boolean;
|
|
18
|
+
/** Simulate partial failure */
|
|
19
|
+
partialFailure?: {
|
|
20
|
+
memories?: boolean;
|
|
21
|
+
files?: boolean;
|
|
22
|
+
};
|
|
23
|
+
}
|
|
24
|
+
export declare class MockLoader implements Loader {
|
|
25
|
+
readonly platform: Platform;
|
|
26
|
+
readonly version = "1.0.0-mock";
|
|
27
|
+
private options;
|
|
28
|
+
private progress;
|
|
29
|
+
/** Track what was loaded for testing assertions */
|
|
30
|
+
loadedBundles: MigrationBundle[];
|
|
31
|
+
constructor(platform: Platform, options?: MockLoaderOptions);
|
|
32
|
+
canLoad(): Promise<boolean>;
|
|
33
|
+
load(bundle: MigrationBundle, options: LoadOptions): Promise<LoadResult>;
|
|
34
|
+
getProgress(): number;
|
|
35
|
+
}
|
|
36
|
+
//# sourceMappingURL=mock-loader.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-loader.d.ts","sourceRoot":"","sources":["../../../src/migrate/testing/mock-loader.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,MAAM,EACN,WAAW,EACX,UAAU,EACV,eAAe,EAChB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,iBAAiB;IAChC,uBAAuB;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,4BAA4B;IAC5B,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,yBAAyB;IACzB,YAAY,CAAC,EAAE,UAAU,CAAC;IAC1B,mCAAmC;IACnC,aAAa,CAAC,EAAE,OAAO,CAAC;IACxB,+BAA+B;IAC/B,cAAc,CAAC,EAAE;QACf,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,KAAK,CAAC,EAAE,OAAO,CAAC;KACjB,CAAC;CACH;AAED,qBAAa,UAAW,YAAW,MAAM;IACvC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAC;IAC5B,QAAQ,CAAC,OAAO,gBAAgB;IAEhC,OAAO,CAAC,OAAO,CAAoB;IACnC,OAAO,CAAC,QAAQ,CAAK;IAErB,mDAAmD;IAC5C,aAAa,EAAE,eAAe,EAAE,CAAM;gBAEjC,QAAQ,EAAE,QAAQ,EAAE,OAAO,GAAE,iBAAsB;IAKzD,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAkE9E,WAAW,IAAI,MAAM;CAGtB"}
|
|
@@ -0,0 +1,81 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock Loader for Testing
|
|
3
|
+
*
|
|
4
|
+
* Simulates loading data to a platform for testing the orchestrator.
|
|
5
|
+
*/
|
|
6
|
+
import { randomBytes } from 'node:crypto';
|
|
7
|
+
export class MockLoader {
|
|
8
|
+
platform;
|
|
9
|
+
version = '1.0.0-mock';
|
|
10
|
+
options;
|
|
11
|
+
progress = 0;
|
|
12
|
+
/** Track what was loaded for testing assertions */
|
|
13
|
+
loadedBundles = [];
|
|
14
|
+
constructor(platform, options = {}) {
|
|
15
|
+
this.platform = platform;
|
|
16
|
+
this.options = options;
|
|
17
|
+
}
|
|
18
|
+
async canLoad() {
|
|
19
|
+
return this.options.canLoadResult ?? true;
|
|
20
|
+
}
|
|
21
|
+
async load(bundle, options) {
|
|
22
|
+
this.progress = 0;
|
|
23
|
+
// Simulate delay
|
|
24
|
+
if (this.options.delayMs) {
|
|
25
|
+
const steps = 10;
|
|
26
|
+
const stepDelay = this.options.delayMs / steps;
|
|
27
|
+
for (let i = 0; i < steps; i++) {
|
|
28
|
+
await new Promise((r) => setTimeout(r, stepDelay));
|
|
29
|
+
this.progress = ((i + 1) / steps) * 100;
|
|
30
|
+
options.onProgress?.(this.progress / 100, `Loading step ${i + 1}/${steps}`);
|
|
31
|
+
}
|
|
32
|
+
}
|
|
33
|
+
// Simulate failure
|
|
34
|
+
if (this.options.shouldFail) {
|
|
35
|
+
throw new Error(this.options.failureMessage ?? 'Mock load failed');
|
|
36
|
+
}
|
|
37
|
+
// Return custom result if provided
|
|
38
|
+
if (this.options.customResult) {
|
|
39
|
+
return this.options.customResult;
|
|
40
|
+
}
|
|
41
|
+
// Track loaded bundle for testing
|
|
42
|
+
this.loadedBundles.push(bundle);
|
|
43
|
+
const warnings = [];
|
|
44
|
+
const errors = [];
|
|
45
|
+
// Calculate what was loaded
|
|
46
|
+
let memoriesLoaded = bundle.contents.memories?.count ?? 0;
|
|
47
|
+
let filesLoaded = bundle.contents.files?.count ?? 0;
|
|
48
|
+
// Simulate partial failure
|
|
49
|
+
if (this.options.partialFailure?.memories) {
|
|
50
|
+
memoriesLoaded = Math.floor(memoriesLoaded / 2);
|
|
51
|
+
warnings.push('Some memories failed to load');
|
|
52
|
+
}
|
|
53
|
+
if (this.options.partialFailure?.files) {
|
|
54
|
+
filesLoaded = 0;
|
|
55
|
+
errors.push('File upload failed');
|
|
56
|
+
}
|
|
57
|
+
const projectId = `proj_${randomBytes(6).toString('hex')}`;
|
|
58
|
+
return {
|
|
59
|
+
success: true,
|
|
60
|
+
loaded: {
|
|
61
|
+
instructions: !!bundle.contents.instructions,
|
|
62
|
+
memories: memoriesLoaded,
|
|
63
|
+
files: filesLoaded,
|
|
64
|
+
customBots: bundle.contents.customBots?.count ?? 0,
|
|
65
|
+
},
|
|
66
|
+
created: {
|
|
67
|
+
projectId,
|
|
68
|
+
projectUrl: `https://mock.${this.platform}.com/projects/${projectId}`,
|
|
69
|
+
},
|
|
70
|
+
warnings,
|
|
71
|
+
errors,
|
|
72
|
+
manualSteps: bundle.contents.customBots
|
|
73
|
+
? ['Custom bots may require manual configuration']
|
|
74
|
+
: undefined,
|
|
75
|
+
};
|
|
76
|
+
}
|
|
77
|
+
getProgress() {
|
|
78
|
+
return this.progress;
|
|
79
|
+
}
|
|
80
|
+
}
|
|
81
|
+
//# sourceMappingURL=mock-loader.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-loader.js","sourceRoot":"","sources":["../../../src/migrate/testing/mock-loader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock Transformer for Testing
|
|
3
|
+
*
|
|
4
|
+
* Simulates transforming data between platforms for testing the orchestrator.
|
|
5
|
+
*/
|
|
6
|
+
import type { Platform, Transformer, TransformOptions, MigrationBundle, CompatibilityReport } from '../types.js';
|
|
7
|
+
export interface MockTransformerOptions {
|
|
8
|
+
/** Simulate failure */
|
|
9
|
+
shouldFail?: boolean;
|
|
10
|
+
/** Failure message */
|
|
11
|
+
failureMessage?: string;
|
|
12
|
+
/** Delay transformation by N ms */
|
|
13
|
+
delayMs?: number;
|
|
14
|
+
/** Custom compatibility report */
|
|
15
|
+
customReport?: CompatibilityReport;
|
|
16
|
+
}
|
|
17
|
+
export declare class MockTransformer implements Transformer {
|
|
18
|
+
readonly source: Platform;
|
|
19
|
+
readonly target: Platform;
|
|
20
|
+
readonly version = "1.0.0-mock";
|
|
21
|
+
private options;
|
|
22
|
+
constructor(source: Platform, target: Platform, options?: MockTransformerOptions);
|
|
23
|
+
analyze(bundle: MigrationBundle): Promise<CompatibilityReport>;
|
|
24
|
+
transform(bundle: MigrationBundle, options: TransformOptions): Promise<MigrationBundle>;
|
|
25
|
+
}
|
|
26
|
+
//# sourceMappingURL=mock-transformer.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-transformer.d.ts","sourceRoot":"","sources":["../../../src/migrate/testing/mock-transformer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AAEH,OAAO,KAAK,EACV,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,eAAe,EACf,mBAAmB,EAEpB,MAAM,aAAa,CAAC;AAGrB,MAAM,WAAW,sBAAsB;IACrC,uBAAuB;IACvB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,sBAAsB;IACtB,cAAc,CAAC,EAAE,MAAM,CAAC;IACxB,mCAAmC;IACnC,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,kCAAkC;IAClC,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,qBAAa,eAAgB,YAAW,WAAW;IACjD,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,MAAM,EAAE,QAAQ,CAAC;IAC1B,QAAQ,CAAC,OAAO,gBAAgB;IAEhC,OAAO,CAAC,OAAO,CAAyB;gBAE5B,MAAM,EAAE,QAAQ,EAAE,MAAM,EAAE,QAAQ,EAAE,OAAO,GAAE,sBAA2B;IAM9E,OAAO,CAAC,MAAM,EAAE,eAAe,GAAG,OAAO,CAAC,mBAAmB,CAAC;IAmH9D,SAAS,CACb,MAAM,EAAE,eAAe,EACvB,OAAO,EAAE,gBAAgB,GACxB,OAAO,CAAC,eAAe,CAAC;CA6D5B"}
|
|
@@ -0,0 +1,185 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Mock Transformer for Testing
|
|
3
|
+
*
|
|
4
|
+
* Simulates transforming data between platforms for testing the orchestrator.
|
|
5
|
+
*/
|
|
6
|
+
import { getPlatformCapabilities } from '../capabilities.js';
|
|
7
|
+
export class MockTransformer {
|
|
8
|
+
source;
|
|
9
|
+
target;
|
|
10
|
+
version = '1.0.0-mock';
|
|
11
|
+
options;
|
|
12
|
+
constructor(source, target, options = {}) {
|
|
13
|
+
this.source = source;
|
|
14
|
+
this.target = target;
|
|
15
|
+
this.options = options;
|
|
16
|
+
}
|
|
17
|
+
async analyze(bundle) {
|
|
18
|
+
if (this.options.customReport) {
|
|
19
|
+
return this.options.customReport;
|
|
20
|
+
}
|
|
21
|
+
const sourceCaps = getPlatformCapabilities(this.source);
|
|
22
|
+
const targetCaps = getPlatformCapabilities(this.target);
|
|
23
|
+
const items = [];
|
|
24
|
+
let perfect = 0;
|
|
25
|
+
let adapted = 0;
|
|
26
|
+
let incompatible = 0;
|
|
27
|
+
// Analyze instructions
|
|
28
|
+
if (bundle.contents.instructions) {
|
|
29
|
+
const length = bundle.contents.instructions.length;
|
|
30
|
+
if (length <= targetCaps.instructionLimit) {
|
|
31
|
+
items.push({
|
|
32
|
+
type: 'instructions',
|
|
33
|
+
name: 'System Instructions',
|
|
34
|
+
status: 'perfect',
|
|
35
|
+
reason: `Within ${targetCaps.name}'s limit of ${targetCaps.instructionLimit} characters`,
|
|
36
|
+
});
|
|
37
|
+
perfect++;
|
|
38
|
+
}
|
|
39
|
+
else {
|
|
40
|
+
items.push({
|
|
41
|
+
type: 'instructions',
|
|
42
|
+
name: 'System Instructions',
|
|
43
|
+
status: 'adapted',
|
|
44
|
+
reason: `Exceeds ${targetCaps.name}'s limit (${length} > ${targetCaps.instructionLimit})`,
|
|
45
|
+
action: 'Will be summarized or truncated',
|
|
46
|
+
});
|
|
47
|
+
adapted++;
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
// Analyze memories
|
|
51
|
+
if (bundle.contents.memories && bundle.contents.memories.count > 0) {
|
|
52
|
+
if (targetCaps.hasMemory) {
|
|
53
|
+
const limit = targetCaps.memoryLimit ?? Infinity;
|
|
54
|
+
if (bundle.contents.memories.count <= limit) {
|
|
55
|
+
items.push({
|
|
56
|
+
type: 'memory',
|
|
57
|
+
name: 'Memory Entries',
|
|
58
|
+
status: 'perfect',
|
|
59
|
+
reason: `All ${bundle.contents.memories.count} memories can be migrated`,
|
|
60
|
+
});
|
|
61
|
+
perfect++;
|
|
62
|
+
}
|
|
63
|
+
else {
|
|
64
|
+
items.push({
|
|
65
|
+
type: 'memory',
|
|
66
|
+
name: 'Memory Entries',
|
|
67
|
+
status: 'adapted',
|
|
68
|
+
reason: `${bundle.contents.memories.count} memories exceeds limit of ${limit}`,
|
|
69
|
+
action: 'Most important memories will be selected',
|
|
70
|
+
});
|
|
71
|
+
adapted++;
|
|
72
|
+
}
|
|
73
|
+
}
|
|
74
|
+
else {
|
|
75
|
+
items.push({
|
|
76
|
+
type: 'memory',
|
|
77
|
+
name: 'Memory Entries',
|
|
78
|
+
status: 'adapted',
|
|
79
|
+
reason: `${targetCaps.name} doesn't support explicit memories`,
|
|
80
|
+
action: 'Will be converted to knowledge documents',
|
|
81
|
+
});
|
|
82
|
+
adapted++;
|
|
83
|
+
}
|
|
84
|
+
}
|
|
85
|
+
// Analyze files
|
|
86
|
+
if (bundle.contents.files && bundle.contents.files.count > 0) {
|
|
87
|
+
if (targetCaps.hasFiles) {
|
|
88
|
+
items.push({
|
|
89
|
+
type: 'file',
|
|
90
|
+
name: 'Uploaded Files',
|
|
91
|
+
status: 'perfect',
|
|
92
|
+
reason: `All ${bundle.contents.files.count} files can be migrated`,
|
|
93
|
+
});
|
|
94
|
+
perfect++;
|
|
95
|
+
}
|
|
96
|
+
else {
|
|
97
|
+
items.push({
|
|
98
|
+
type: 'file',
|
|
99
|
+
name: 'Uploaded Files',
|
|
100
|
+
status: 'incompatible',
|
|
101
|
+
reason: `${targetCaps.name} doesn't support file uploads`,
|
|
102
|
+
});
|
|
103
|
+
incompatible++;
|
|
104
|
+
}
|
|
105
|
+
}
|
|
106
|
+
const total = perfect + adapted + incompatible;
|
|
107
|
+
let feasibility;
|
|
108
|
+
if (incompatible === 0 && adapted === 0) {
|
|
109
|
+
feasibility = 'easy';
|
|
110
|
+
}
|
|
111
|
+
else if (incompatible === 0) {
|
|
112
|
+
feasibility = 'moderate';
|
|
113
|
+
}
|
|
114
|
+
else if (incompatible < total / 2) {
|
|
115
|
+
feasibility = 'complex';
|
|
116
|
+
}
|
|
117
|
+
else {
|
|
118
|
+
feasibility = 'partial';
|
|
119
|
+
}
|
|
120
|
+
return {
|
|
121
|
+
source: this.source,
|
|
122
|
+
target: this.target,
|
|
123
|
+
generatedAt: new Date().toISOString(),
|
|
124
|
+
summary: { perfect, adapted, incompatible, total },
|
|
125
|
+
items,
|
|
126
|
+
recommendations: adapted > 0 ? ['Review adapted items before migration'] : [],
|
|
127
|
+
feasibility,
|
|
128
|
+
};
|
|
129
|
+
}
|
|
130
|
+
async transform(bundle, options) {
|
|
131
|
+
// Simulate delay
|
|
132
|
+
if (this.options.delayMs) {
|
|
133
|
+
const steps = 10;
|
|
134
|
+
const stepDelay = this.options.delayMs / steps;
|
|
135
|
+
for (let i = 0; i < steps; i++) {
|
|
136
|
+
await new Promise((r) => setTimeout(r, stepDelay));
|
|
137
|
+
options.onProgress?.(((i + 1) / steps) * 100, `Transforming step ${i + 1}/${steps}`);
|
|
138
|
+
}
|
|
139
|
+
}
|
|
140
|
+
// Simulate failure
|
|
141
|
+
if (this.options.shouldFail) {
|
|
142
|
+
throw new Error(this.options.failureMessage ?? 'Mock transformation failed');
|
|
143
|
+
}
|
|
144
|
+
const targetCaps = getPlatformCapabilities(this.target);
|
|
145
|
+
// Create transformed bundle
|
|
146
|
+
const transformed = {
|
|
147
|
+
...bundle,
|
|
148
|
+
target: {
|
|
149
|
+
platform: this.target,
|
|
150
|
+
transformedAt: new Date().toISOString(),
|
|
151
|
+
transformerVersion: this.version,
|
|
152
|
+
},
|
|
153
|
+
contents: { ...bundle.contents },
|
|
154
|
+
};
|
|
155
|
+
// Apply transformations based on target capabilities
|
|
156
|
+
if (transformed.contents.instructions) {
|
|
157
|
+
const content = transformed.contents.instructions.content;
|
|
158
|
+
if (content.length > targetCaps.instructionLimit) {
|
|
159
|
+
if (options.overflowStrategy === 'truncate') {
|
|
160
|
+
transformed.contents.instructions = {
|
|
161
|
+
...transformed.contents.instructions,
|
|
162
|
+
content: content.substring(0, targetCaps.instructionLimit - 3) + '...',
|
|
163
|
+
length: targetCaps.instructionLimit,
|
|
164
|
+
};
|
|
165
|
+
}
|
|
166
|
+
else if (options.overflowStrategy === 'summarize') {
|
|
167
|
+
// Mock summarization - just truncate with a note
|
|
168
|
+
transformed.contents.instructions = {
|
|
169
|
+
...transformed.contents.instructions,
|
|
170
|
+
content: `[Summarized for ${targetCaps.name}]\n\n` +
|
|
171
|
+
content.substring(0, targetCaps.instructionLimit - 50),
|
|
172
|
+
length: targetCaps.instructionLimit,
|
|
173
|
+
};
|
|
174
|
+
}
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
// Handle memories if target doesn't support them
|
|
178
|
+
if (!targetCaps.hasMemory && transformed.contents.memories) {
|
|
179
|
+
// Convert memories to knowledge format (mock)
|
|
180
|
+
transformed.metadata.warnings.push(`Converted ${transformed.contents.memories.count} memories to knowledge documents`);
|
|
181
|
+
}
|
|
182
|
+
return transformed;
|
|
183
|
+
}
|
|
184
|
+
}
|
|
185
|
+
//# sourceMappingURL=mock-transformer.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"mock-transformer.js","sourceRoot":"","sources":["../../../src/migrate/testing/mock-transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chatgpt-to-claude.test.d.ts","sourceRoot":"","sources":["../../../../src/migrate/transformers/__tests__/chatgpt-to-claude.test.ts"],"names":[],"mappings":"AAAA;;GAEG"}
|