@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.
Files changed (75) hide show
  1. package/dist/migrate/__tests__/claude-loader.test.d.ts +7 -0
  2. package/dist/migrate/__tests__/claude-loader.test.d.ts.map +1 -0
  3. package/dist/migrate/__tests__/claude-loader.test.js +544 -0
  4. package/dist/migrate/__tests__/claude-loader.test.js.map +1 -0
  5. package/dist/migrate/__tests__/orchestrator.test.d.ts +8 -0
  6. package/dist/migrate/__tests__/orchestrator.test.d.ts.map +1 -0
  7. package/dist/migrate/__tests__/orchestrator.test.js +355 -0
  8. package/dist/migrate/__tests__/orchestrator.test.js.map +1 -0
  9. package/dist/migrate/extractors/__tests__/chatgpt.test.d.ts +12 -0
  10. package/dist/migrate/extractors/__tests__/chatgpt.test.d.ts.map +1 -0
  11. package/dist/migrate/extractors/__tests__/chatgpt.test.js +522 -0
  12. package/dist/migrate/extractors/__tests__/chatgpt.test.js.map +1 -0
  13. package/dist/migrate/extractors/chatgpt.d.ts +70 -0
  14. package/dist/migrate/extractors/chatgpt.d.ts.map +1 -0
  15. package/dist/migrate/extractors/chatgpt.js +791 -0
  16. package/dist/migrate/extractors/chatgpt.js.map +1 -0
  17. package/dist/migrate/extractors/registry.js +3 -2
  18. package/dist/migrate/extractors/registry.js.map +1 -1
  19. package/dist/migrate/index.d.ts +6 -1
  20. package/dist/migrate/index.d.ts.map +1 -1
  21. package/dist/migrate/index.js +12 -1
  22. package/dist/migrate/index.js.map +1 -1
  23. package/dist/migrate/loaders/claude.d.ts +61 -0
  24. package/dist/migrate/loaders/claude.d.ts.map +1 -0
  25. package/dist/migrate/loaders/claude.js +433 -0
  26. package/dist/migrate/loaders/claude.js.map +1 -0
  27. package/dist/migrate/loaders/registry.js +3 -2
  28. package/dist/migrate/loaders/registry.js.map +1 -1
  29. package/dist/migrate/orchestrator.d.ts +75 -1
  30. package/dist/migrate/orchestrator.d.ts.map +1 -1
  31. package/dist/migrate/orchestrator.js +215 -19
  32. package/dist/migrate/orchestrator.js.map +1 -1
  33. package/dist/migrate/testing/index.d.ts +28 -0
  34. package/dist/migrate/testing/index.d.ts.map +1 -0
  35. package/dist/migrate/testing/index.js +55 -0
  36. package/dist/migrate/testing/index.js.map +1 -0
  37. package/dist/migrate/testing/mock-extractor.d.ts +30 -0
  38. package/dist/migrate/testing/mock-extractor.d.ts.map +1 -0
  39. package/dist/migrate/testing/mock-extractor.js +137 -0
  40. package/dist/migrate/testing/mock-extractor.js.map +1 -0
  41. package/dist/migrate/testing/mock-loader.d.ts +36 -0
  42. package/dist/migrate/testing/mock-loader.d.ts.map +1 -0
  43. package/dist/migrate/testing/mock-loader.js +81 -0
  44. package/dist/migrate/testing/mock-loader.js.map +1 -0
  45. package/dist/migrate/testing/mock-transformer.d.ts +26 -0
  46. package/dist/migrate/testing/mock-transformer.d.ts.map +1 -0
  47. package/dist/migrate/testing/mock-transformer.js +185 -0
  48. package/dist/migrate/testing/mock-transformer.js.map +1 -0
  49. package/dist/migrate/transformers/__tests__/chatgpt-to-claude.test.d.ts +5 -0
  50. package/dist/migrate/transformers/__tests__/chatgpt-to-claude.test.d.ts.map +1 -0
  51. package/dist/migrate/transformers/__tests__/chatgpt-to-claude.test.js +333 -0
  52. package/dist/migrate/transformers/__tests__/chatgpt-to-claude.test.js.map +1 -0
  53. package/dist/migrate/transformers/__tests__/claude-to-chatgpt.test.d.ts +5 -0
  54. package/dist/migrate/transformers/__tests__/claude-to-chatgpt.test.d.ts.map +1 -0
  55. package/dist/migrate/transformers/__tests__/claude-to-chatgpt.test.js +333 -0
  56. package/dist/migrate/transformers/__tests__/claude-to-chatgpt.test.js.map +1 -0
  57. package/dist/migrate/transformers/__tests__/rules.test.d.ts +5 -0
  58. package/dist/migrate/transformers/__tests__/rules.test.d.ts.map +1 -0
  59. package/dist/migrate/transformers/__tests__/rules.test.js +375 -0
  60. package/dist/migrate/transformers/__tests__/rules.test.js.map +1 -0
  61. package/dist/migrate/transformers/chatgpt-to-claude.d.ts +40 -0
  62. package/dist/migrate/transformers/chatgpt-to-claude.d.ts.map +1 -0
  63. package/dist/migrate/transformers/chatgpt-to-claude.js +443 -0
  64. package/dist/migrate/transformers/chatgpt-to-claude.js.map +1 -0
  65. package/dist/migrate/transformers/claude-to-chatgpt.d.ts +41 -0
  66. package/dist/migrate/transformers/claude-to-chatgpt.d.ts.map +1 -0
  67. package/dist/migrate/transformers/claude-to-chatgpt.js +532 -0
  68. package/dist/migrate/transformers/claude-to-chatgpt.js.map +1 -0
  69. package/dist/migrate/transformers/registry.js +6 -4
  70. package/dist/migrate/transformers/registry.js.map +1 -1
  71. package/dist/migrate/transformers/rules.d.ts +168 -0
  72. package/dist/migrate/transformers/rules.d.ts.map +1 -0
  73. package/dist/migrate/transformers/rules.js +487 -0
  74. package/dist/migrate/transformers/rules.js.map +1 -0
  75. package/package.json +6 -2
@@ -0,0 +1 @@
1
+ {"version":3,"file":"chatgpt.js","sourceRoot":"","sources":["../../../src/migrate/extractors/chatgpt.ts"],"names":[],"mappings":"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"}
@@ -31,8 +31,9 @@ export function hasExtractor(platform) {
31
31
  return extractors.has(platform);
32
32
  }
33
33
  // ─── Register Built-in Extractors ────────────────────────────
34
- // ChatGPT extractor will be registered in #24
35
- // registerExtractor('chatgpt', () => new ChatGPTExtractor());
34
+ import { ChatGPTExtractor } from './chatgpt.js';
35
+ // ChatGPT extractor (#24)
36
+ registerExtractor('chatgpt', () => new ChatGPTExtractor());
36
37
  // Claude extractor will be registered in #29
37
38
  // registerExtractor('claude', () => new ClaudeExtractor());
38
39
  //# sourceMappingURL=registry.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/migrate/extractors/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;AAExD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB,EAAE,OAAwB;IAC5E,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,gEAAgE;AAEhE,8CAA8C;AAC9C,8DAA8D;AAE9D,6CAA6C;AAC7C,4DAA4D"}
1
+ {"version":3,"file":"registry.js","sourceRoot":"","sources":["../../../src/migrate/extractors/registry.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAIH,MAAM,UAAU,GAAG,IAAI,GAAG,EAA6B,CAAC;AAExD;;GAEG;AACH,MAAM,UAAU,iBAAiB,CAAC,QAAkB,EAAE,OAAwB;IAC5E,UAAU,CAAC,GAAG,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,MAAM,OAAO,GAAG,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IACzC,OAAO,OAAO,CAAC,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACpC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,cAAc;IAC5B,OAAO,CAAC,GAAG,UAAU,CAAC,IAAI,EAAE,CAAC,CAAC;AAChC,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,YAAY,CAAC,QAAkB;IAC7C,OAAO,UAAU,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;AAClC,CAAC;AAED,gEAAgE;AAEhE,OAAO,EAAE,gBAAgB,EAAE,MAAM,cAAc,CAAC;AAEhD,0BAA0B;AAC1B,iBAAiB,CAAC,SAAS,EAAE,GAAG,EAAE,CAAC,IAAI,gBAAgB,EAAE,CAAC,CAAC;AAE3D,6CAA6C;AAC7C,4DAA4D"}
@@ -5,9 +5,14 @@
5
5
  * Extract → Transform → Load
6
6
  */
7
7
  export type { Platform, PlatformCapabilities, MigrationBundle, MigrationContents, MigrationState, MigrationPhase, MigrationOptions, MigrationCheckpoint, CompatibilityReport, CompatibilityItem, CompatibilityStatus, Extractor, ExtractOptions, Transformer, TransformOptions, Loader, LoadOptions, LoadResult, } from './types.js';
8
- export { MigrationOrchestrator, type MigrationEvent, type MigrationEventHandler } from './orchestrator.js';
8
+ export { MigrationOrchestrator, type MigrationEvent, type MigrationEventHandler, type RollbackAction, type RollbackPlan, type RollbackResult, } from './orchestrator.js';
9
9
  export { getExtractor, registerExtractor, listExtractors, hasExtractor } from './extractors/registry.js';
10
10
  export { getTransformer, registerTransformer, listTransformers, hasTransformer } from './transformers/registry.js';
11
11
  export { getLoader, registerLoader, listLoaders, hasLoader } from './loaders/registry.js';
12
+ export { ChatGPTExtractor, type ChatGPTExtractorConfig } from './extractors/chatgpt.js';
13
+ export { ClaudeLoader, type ClaudeLoaderConfig } from './loaders/claude.js';
14
+ export { ChatGPTToClaudeTransformer } from './transformers/chatgpt-to-claude.js';
15
+ export { ClaudeToChatGPTTransformer } from './transformers/claude-to-chatgpt.js';
16
+ export { type ContentType, type OverflowStrategy, type AdaptationMethod, type TransformationRule, type RuleCondition, type TransformationResult, type CharacterLimit, type PlatformMapping, getTargetLimits, intelligentTruncate, splitContent, convertChatGPTInstructionsToClaude, convertClaudeInstructionsToChatGPT, convertMemoriesToDocument, convertDocumentToMemories, extractContextFromConversations, mapGPTToProject, validateBundleForTarget, } from './transformers/rules.js';
12
17
  export { getPlatformCapabilities, PLATFORM_CAPABILITIES } from './capabilities.js';
13
18
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EAAE,qBAAqB,EAAE,KAAK,cAAc,EAAE,KAAK,qBAAqB,EAAE,MAAM,mBAAmB,CAAC;AAG3G,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG1F,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,YAAY,EACV,QAAQ,EACR,oBAAoB,EACpB,eAAe,EACf,iBAAiB,EACjB,cAAc,EACd,cAAc,EACd,gBAAgB,EAChB,mBAAmB,EACnB,mBAAmB,EACnB,iBAAiB,EACjB,mBAAmB,EACnB,SAAS,EACT,cAAc,EACd,WAAW,EACX,gBAAgB,EAChB,MAAM,EACN,WAAW,EACX,UAAU,GACX,MAAM,YAAY,CAAC;AAGpB,OAAO,EACL,qBAAqB,EACrB,KAAK,cAAc,EACnB,KAAK,qBAAqB,EAC1B,KAAK,cAAc,EACnB,KAAK,YAAY,EACjB,KAAK,cAAc,GACpB,MAAM,mBAAmB,CAAC;AAG3B,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAG1F,OAAO,EAAE,gBAAgB,EAAE,KAAK,sBAAsB,EAAE,MAAM,yBAAyB,CAAC;AAGxF,OAAO,EAAE,YAAY,EAAE,KAAK,kBAAkB,EAAE,MAAM,qBAAqB,CAAC;AAG5E,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAGjF,OAAO,EAEL,KAAK,WAAW,EAChB,KAAK,gBAAgB,EACrB,KAAK,gBAAgB,EACrB,KAAK,kBAAkB,EACvB,KAAK,aAAa,EAClB,KAAK,oBAAoB,EACzB,KAAK,cAAc,EACnB,KAAK,eAAe,EAEpB,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,kCAAkC,EAClC,kCAAkC,EAClC,yBAAyB,EACzB,yBAAyB,EACzB,+BAA+B,EAC/B,eAAe,EACf,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAGjC,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -5,11 +5,22 @@
5
5
  * Extract → Transform → Load
6
6
  */
7
7
  // Orchestrator
8
- export { MigrationOrchestrator } from './orchestrator.js';
8
+ export { MigrationOrchestrator, } from './orchestrator.js';
9
9
  // Registries
10
10
  export { getExtractor, registerExtractor, listExtractors, hasExtractor } from './extractors/registry.js';
11
11
  export { getTransformer, registerTransformer, listTransformers, hasTransformer } from './transformers/registry.js';
12
12
  export { getLoader, registerLoader, listLoaders, hasLoader } from './loaders/registry.js';
13
+ // Extractors (for direct instantiation with custom config)
14
+ export { ChatGPTExtractor } from './extractors/chatgpt.js';
15
+ // Loaders (for direct instantiation with custom config)
16
+ export { ClaudeLoader } from './loaders/claude.js';
17
+ // Transformers (for direct instantiation)
18
+ export { ChatGPTToClaudeTransformer } from './transformers/chatgpt-to-claude.js';
19
+ export { ClaudeToChatGPTTransformer } from './transformers/claude-to-chatgpt.js';
20
+ // Transformation rules and utilities
21
+ export {
22
+ // Functions
23
+ getTargetLimits, intelligentTruncate, splitContent, convertChatGPTInstructionsToClaude, convertClaudeInstructionsToChatGPT, convertMemoriesToDocument, convertDocumentToMemories, extractContextFromConversations, mapGPTToProject, validateBundleForTarget, } from './transformers/rules.js';
13
24
  // Platform capabilities (for compatibility checking)
14
25
  export { getPlatformCapabilities, PLATFORM_CAPABILITIES } from './capabilities.js';
15
26
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,eAAe;AACf,OAAO,EAAE,qBAAqB,EAAmD,MAAM,mBAAmB,CAAC;AAE3G,aAAa;AACb,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE1F,qDAAqD;AACrD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/migrate/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAwBH,eAAe;AACf,OAAO,EACL,qBAAqB,GAMtB,MAAM,mBAAmB,CAAC;AAE3B,aAAa;AACb,OAAO,EAAE,YAAY,EAAE,iBAAiB,EAAE,cAAc,EAAE,YAAY,EAAE,MAAM,0BAA0B,CAAC;AACzG,OAAO,EAAE,cAAc,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAC;AACnH,OAAO,EAAE,SAAS,EAAE,cAAc,EAAE,WAAW,EAAE,SAAS,EAAE,MAAM,uBAAuB,CAAC;AAE1F,2DAA2D;AAC3D,OAAO,EAAE,gBAAgB,EAA+B,MAAM,yBAAyB,CAAC;AAExF,wDAAwD;AACxD,OAAO,EAAE,YAAY,EAA2B,MAAM,qBAAqB,CAAC;AAE5E,0CAA0C;AAC1C,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AACjF,OAAO,EAAE,0BAA0B,EAAE,MAAM,qCAAqC,CAAC;AAEjF,qCAAqC;AACrC,OAAO;AAUL,YAAY;AACZ,eAAe,EACf,mBAAmB,EACnB,YAAY,EACZ,kCAAkC,EAClC,kCAAkC,EAClC,yBAAyB,EACzB,yBAAyB,EACzB,+BAA+B,EAC/B,eAAe,EACf,uBAAuB,GACxB,MAAM,yBAAyB,CAAC;AAEjC,qDAAqD;AACrD,OAAO,EAAE,uBAAuB,EAAE,qBAAqB,EAAE,MAAM,mBAAmB,CAAC"}
@@ -0,0 +1,61 @@
1
+ /**
2
+ * Claude Loader
3
+ *
4
+ * Loads migration data into Claude Projects.
5
+ *
6
+ * Target Structure:
7
+ * - Claude Project with custom name
8
+ * - System prompt from transformed instructions
9
+ * - Project knowledge documents (memories, context)
10
+ * - Uploaded files
11
+ *
12
+ * @see https://docs.anthropic.com/claude/reference/projects
13
+ */
14
+ import type { Platform, Loader, LoadOptions, LoadResult, MigrationBundle } from '../types.js';
15
+ export interface ClaudeLoaderConfig {
16
+ /** Anthropic API key */
17
+ apiKey?: string;
18
+ /** API base URL (defaults to https://api.anthropic.com) */
19
+ baseUrl?: string;
20
+ /** Max retries for failed requests */
21
+ maxRetries?: number;
22
+ /** Base delay for exponential backoff (ms) */
23
+ retryDelayMs?: number;
24
+ /** Organization ID (if applicable) */
25
+ organizationId?: string;
26
+ }
27
+ interface ClaudeLoadState {
28
+ projectId?: string;
29
+ instructionsLoaded: boolean;
30
+ memoriesDocId?: string;
31
+ contextDocId?: string;
32
+ uploadedFileIds: string[];
33
+ uploadedFilenames: string[];
34
+ lastFileIndex: number;
35
+ }
36
+ export declare class ClaudeLoader implements Loader {
37
+ readonly platform: Platform;
38
+ readonly version = "1.0.0";
39
+ private progress;
40
+ private config;
41
+ private client;
42
+ private state;
43
+ constructor(config?: ClaudeLoaderConfig);
44
+ canLoad(): Promise<boolean>;
45
+ load(bundle: MigrationBundle, options: LoadOptions): Promise<LoadResult>;
46
+ getProgress(): number;
47
+ /**
48
+ * Get current load state for checkpointing.
49
+ */
50
+ getLoadState(): ClaudeLoadState;
51
+ /**
52
+ * Set load state for resume.
53
+ */
54
+ setLoadState(state: ClaudeLoadState): void;
55
+ private formatMemoriesAsMarkdown;
56
+ private formatContextSummary;
57
+ private uploadFile;
58
+ private dryRunResult;
59
+ }
60
+ export {};
61
+ //# sourceMappingURL=claude.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"claude.d.ts","sourceRoot":"","sources":["../../../src/migrate/loaders/claude.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;GAYG;AAKH,OAAO,KAAK,EACV,QAAQ,EACR,MAAM,EACN,WAAW,EACX,UAAU,EACV,eAAe,EAEhB,MAAM,aAAa,CAAC;AAsCrB,MAAM,WAAW,kBAAkB;IACjC,wBAAwB;IACxB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,8CAA8C;IAC9C,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,sCAAsC;IACtC,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB;AAmND,UAAU,eAAe;IACvB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,kBAAkB,EAAE,OAAO,CAAC;IAC5B,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,eAAe,EAAE,MAAM,EAAE,CAAC;IAC1B,iBAAiB,EAAE,MAAM,EAAE,CAAC;IAC5B,aAAa,EAAE,MAAM,CAAC;CACvB;AAID,qBAAa,YAAa,YAAW,MAAM;IACzC,QAAQ,CAAC,QAAQ,EAAE,QAAQ,CAAY;IACvC,QAAQ,CAAC,OAAO,WAAW;IAE3B,OAAO,CAAC,QAAQ,CAAK;IACrB,OAAO,CAAC,MAAM,CAAqB;IACnC,OAAO,CAAC,MAAM,CAAkB;IAChC,OAAO,CAAC,KAAK,CAKX;gBAEU,MAAM,GAAE,kBAAuB;IAKrC,OAAO,IAAI,OAAO,CAAC,OAAO,CAAC;IAI3B,IAAI,CAAC,MAAM,EAAE,eAAe,EAAE,OAAO,EAAE,WAAW,GAAG,OAAO,CAAC,UAAU,CAAC;IAmK9E,WAAW,IAAI,MAAM;IAIrB;;OAEG;IACH,YAAY,IAAI,eAAe;IAI/B;;OAEG;IACH,YAAY,CAAC,KAAK,EAAE,eAAe,GAAG,IAAI;IAM1C,OAAO,CAAC,wBAAwB;IAgChC,OAAO,CAAC,oBAAoB;YAuBd,UAAU;IAkCxB,OAAO,CAAC,YAAY;CAmCrB"}
@@ -0,0 +1,433 @@
1
+ /**
2
+ * Claude Loader
3
+ *
4
+ * Loads migration data into Claude Projects.
5
+ *
6
+ * Target Structure:
7
+ * - Claude Project with custom name
8
+ * - System prompt from transformed instructions
9
+ * - Project knowledge documents (memories, context)
10
+ * - Uploaded files
11
+ *
12
+ * @see https://docs.anthropic.com/claude/reference/projects
13
+ */
14
+ import { readFile } from 'node:fs/promises';
15
+ import { existsSync } from 'node:fs';
16
+ import { basename } from 'node:path';
17
+ import { getPlatformCapabilities } from '../capabilities.js';
18
+ // ─── Rate Limiter ────────────────────────────────────────────
19
+ class RateLimiter {
20
+ requestTimes = [];
21
+ maxRequests;
22
+ windowMs;
23
+ constructor(maxRequests = 50, windowMs = 60_000) {
24
+ this.maxRequests = maxRequests;
25
+ this.windowMs = windowMs;
26
+ }
27
+ async acquire() {
28
+ const now = Date.now();
29
+ this.requestTimes = this.requestTimes.filter((t) => now - t < this.windowMs);
30
+ if (this.requestTimes.length >= this.maxRequests) {
31
+ const oldestRequest = this.requestTimes[0];
32
+ const waitTime = this.windowMs - (now - oldestRequest) + 100;
33
+ await this.sleep(waitTime);
34
+ }
35
+ this.requestTimes.push(Date.now());
36
+ }
37
+ sleep(ms) {
38
+ return new Promise((resolve) => setTimeout(resolve, ms));
39
+ }
40
+ }
41
+ // ─── Claude API Client ───────────────────────────────────────
42
+ class ClaudeApiClient {
43
+ apiKey;
44
+ baseUrl;
45
+ maxRetries;
46
+ retryDelayMs;
47
+ rateLimiter;
48
+ organizationId;
49
+ constructor(config) {
50
+ this.apiKey = config.apiKey || process.env.ANTHROPIC_API_KEY || '';
51
+ this.baseUrl = config.baseUrl || 'https://api.anthropic.com';
52
+ this.maxRetries = config.maxRetries ?? 3;
53
+ this.retryDelayMs = config.retryDelayMs ?? 1000;
54
+ this.rateLimiter = new RateLimiter();
55
+ this.organizationId = config.organizationId;
56
+ }
57
+ hasApiKey() {
58
+ return !!this.apiKey;
59
+ }
60
+ async request(method, path, body, retryCount = 0) {
61
+ await this.rateLimiter.acquire();
62
+ const headers = {
63
+ 'Content-Type': 'application/json',
64
+ 'anthropic-version': '2024-10-01',
65
+ 'x-api-key': this.apiKey,
66
+ };
67
+ if (this.organizationId) {
68
+ headers['anthropic-organization'] = this.organizationId;
69
+ }
70
+ const url = `${this.baseUrl}${path}`;
71
+ try {
72
+ const response = await fetch(url, {
73
+ method,
74
+ headers,
75
+ body: body ? JSON.stringify(body) : undefined,
76
+ });
77
+ if (!response.ok) {
78
+ const error = new Error();
79
+ error.status = response.status;
80
+ // Handle rate limiting
81
+ if (response.status === 429) {
82
+ const retryAfter = response.headers.get('retry-after');
83
+ error.retryAfter = retryAfter ? parseInt(retryAfter, 10) * 1000 : this.retryDelayMs;
84
+ error.code = 'rate_limit_exceeded';
85
+ error.message = 'Rate limit exceeded';
86
+ if (retryCount < this.maxRetries) {
87
+ await this.sleep(error.retryAfter);
88
+ return this.request(method, path, body, retryCount + 1);
89
+ }
90
+ }
91
+ // Handle transient errors
92
+ if (response.status >= 500 && retryCount < this.maxRetries) {
93
+ await this.sleep(this.retryDelayMs * Math.pow(2, retryCount));
94
+ return this.request(method, path, body, retryCount + 1);
95
+ }
96
+ try {
97
+ const errorBody = (await response.json());
98
+ error.message = errorBody.error?.message || `API error: ${response.status}`;
99
+ error.code = errorBody.error?.type;
100
+ }
101
+ catch {
102
+ error.message = `API error: ${response.status} ${response.statusText}`;
103
+ }
104
+ throw error;
105
+ }
106
+ return response.json();
107
+ }
108
+ catch (err) {
109
+ // Retry on network errors
110
+ if (err instanceof TypeError &&
111
+ err.message.includes('fetch') &&
112
+ retryCount < this.maxRetries) {
113
+ await this.sleep(this.retryDelayMs * Math.pow(2, retryCount));
114
+ return this.request(method, path, body, retryCount + 1);
115
+ }
116
+ throw err;
117
+ }
118
+ }
119
+ sleep(ms) {
120
+ return new Promise((resolve) => setTimeout(resolve, ms));
121
+ }
122
+ // ─── Projects API ────────────────────────────────────────
123
+ async createProject(name, description) {
124
+ return this.request('POST', '/v1/projects', {
125
+ name,
126
+ description,
127
+ });
128
+ }
129
+ async updateProjectPrompt(projectId, systemPrompt) {
130
+ await this.request('PUT', `/v1/projects/${projectId}`, {
131
+ prompt_template: systemPrompt,
132
+ });
133
+ }
134
+ async createProjectDocument(projectId, name, content) {
135
+ return this.request('POST', `/v1/projects/${projectId}/docs`, {
136
+ name,
137
+ content,
138
+ });
139
+ }
140
+ async uploadProjectFile(projectId, filename, content, contentType) {
141
+ await this.rateLimiter.acquire();
142
+ const formData = new FormData();
143
+ formData.append('file', new Blob([content], { type: contentType }), filename);
144
+ const headers = {
145
+ 'anthropic-version': '2024-10-01',
146
+ 'x-api-key': this.apiKey,
147
+ };
148
+ if (this.organizationId) {
149
+ headers['anthropic-organization'] = this.organizationId;
150
+ }
151
+ const response = await fetch(`${this.baseUrl}/v1/projects/${projectId}/files`, {
152
+ method: 'POST',
153
+ headers,
154
+ body: formData,
155
+ });
156
+ if (!response.ok) {
157
+ const error = new Error();
158
+ error.status = response.status;
159
+ try {
160
+ const errorBody = (await response.json());
161
+ error.message = errorBody.error?.message || `File upload error: ${response.status}`;
162
+ }
163
+ catch {
164
+ error.message = `File upload error: ${response.status}`;
165
+ }
166
+ throw error;
167
+ }
168
+ return response.json();
169
+ }
170
+ async deleteProject(projectId) {
171
+ await this.request('DELETE', `/v1/projects/${projectId}`);
172
+ }
173
+ }
174
+ // ─── Claude Loader ───────────────────────────────────────────
175
+ export class ClaudeLoader {
176
+ platform = 'claude';
177
+ version = '1.0.0';
178
+ progress = 0;
179
+ config;
180
+ client;
181
+ state = {
182
+ instructionsLoaded: false,
183
+ uploadedFileIds: [],
184
+ uploadedFilenames: [],
185
+ lastFileIndex: -1,
186
+ };
187
+ constructor(config = {}) {
188
+ this.config = config;
189
+ this.client = new ClaudeApiClient(config);
190
+ }
191
+ async canLoad() {
192
+ return this.client.hasApiKey();
193
+ }
194
+ async load(bundle, options) {
195
+ this.progress = 0;
196
+ const warnings = [];
197
+ const errors = [];
198
+ const capabilities = getPlatformCapabilities('claude');
199
+ // Validate bundle target
200
+ if (bundle.target?.platform !== 'claude') {
201
+ throw new Error('Bundle not transformed for Claude');
202
+ }
203
+ // Check for dry run
204
+ if (options.dryRun) {
205
+ return this.dryRunResult(bundle, warnings);
206
+ }
207
+ try {
208
+ // Step 1: Create Project (10%)
209
+ options.onProgress?.(0.05, 'Creating Claude project...');
210
+ const projectName = options.projectName || `Migrated from ${bundle.source.platform} (${new Date().toISOString().split('T')[0]})`;
211
+ const project = await this.client.createProject(projectName, `Migration from ${bundle.source.platform} via SaveState`);
212
+ this.state.projectId = project.id;
213
+ this.progress = 10;
214
+ options.onProgress?.(0.1, `Created project: ${projectName}`);
215
+ // Step 2: Set System Prompt (20%)
216
+ let instructionsLoaded = false;
217
+ if (bundle.contents.instructions?.content) {
218
+ options.onProgress?.(0.15, 'Setting system prompt...');
219
+ const instructionContent = bundle.contents.instructions.content;
220
+ // Check length limit
221
+ if (instructionContent.length > capabilities.instructionLimit) {
222
+ warnings.push(`Instructions truncated: ${instructionContent.length} > ${capabilities.instructionLimit} chars`);
223
+ }
224
+ const truncatedInstructions = instructionContent.slice(0, capabilities.instructionLimit);
225
+ await this.client.updateProjectPrompt(project.id, truncatedInstructions);
226
+ this.state.instructionsLoaded = true;
227
+ instructionsLoaded = true;
228
+ }
229
+ this.progress = 20;
230
+ options.onProgress?.(0.2, 'System prompt configured');
231
+ // Step 3: Upload Knowledge Documents (40%)
232
+ let memoriesLoaded = 0;
233
+ if (bundle.contents.memories?.entries && bundle.contents.memories.entries.length > 0) {
234
+ options.onProgress?.(0.25, 'Creating memories document...');
235
+ const memoriesContent = this.formatMemoriesAsMarkdown(bundle.contents.memories.entries);
236
+ const memoriesDoc = await this.client.createProjectDocument(project.id, 'memories.md', memoriesContent);
237
+ this.state.memoriesDocId = memoriesDoc.id;
238
+ memoriesLoaded = bundle.contents.memories.entries.length;
239
+ }
240
+ // Create context summary if available
241
+ if (bundle.contents.conversations?.summaries && bundle.contents.conversations.summaries.length > 0) {
242
+ options.onProgress?.(0.35, 'Creating context summary...');
243
+ const contextContent = this.formatContextSummary(bundle.contents.conversations.summaries);
244
+ const contextDoc = await this.client.createProjectDocument(project.id, 'context-summary.md', contextContent);
245
+ this.state.contextDocId = contextDoc.id;
246
+ }
247
+ this.progress = 40;
248
+ options.onProgress?.(0.4, 'Knowledge documents uploaded');
249
+ // Step 4: Upload Files (40-90%)
250
+ let filesLoaded = 0;
251
+ if (bundle.contents.files?.files && bundle.contents.files.files.length > 0) {
252
+ const files = bundle.contents.files.files;
253
+ const startIndex = this.state.lastFileIndex + 1;
254
+ for (let i = startIndex; i < files.length; i++) {
255
+ const file = files[i];
256
+ const fileProgress = 0.4 + (0.5 * (i + 1)) / files.length;
257
+ options.onProgress?.(fileProgress, `Uploading file ${i + 1}/${files.length}: ${file.filename}`);
258
+ try {
259
+ const uploadResult = await this.uploadFile(project.id, file, bundle, capabilities.fileSizeLimit);
260
+ if (uploadResult.success) {
261
+ this.state.uploadedFileIds.push(uploadResult.fileId);
262
+ this.state.uploadedFilenames.push(file.filename);
263
+ this.state.lastFileIndex = i;
264
+ filesLoaded++;
265
+ }
266
+ else if (uploadResult.warning) {
267
+ warnings.push(uploadResult.warning);
268
+ }
269
+ }
270
+ catch (err) {
271
+ const errorMsg = err instanceof Error ? err.message : String(err);
272
+ errors.push(`Failed to upload ${file.filename}: ${errorMsg}`);
273
+ }
274
+ }
275
+ }
276
+ this.progress = 90;
277
+ // Step 5: Finalize (100%)
278
+ options.onProgress?.(0.95, 'Finalizing migration...');
279
+ this.progress = 100;
280
+ options.onProgress?.(1.0, 'Migration complete');
281
+ const manualSteps = [];
282
+ if (bundle.contents.customBots && bundle.contents.customBots.count > 0) {
283
+ manualSteps.push(`${bundle.contents.customBots.count} custom bots/GPTs were found but cannot be automatically migrated. You may want to recreate them manually.`);
284
+ }
285
+ return {
286
+ success: true,
287
+ loaded: {
288
+ instructions: instructionsLoaded,
289
+ memories: memoriesLoaded,
290
+ files: filesLoaded,
291
+ customBots: 0, // Claude doesn't have custom bots
292
+ },
293
+ created: {
294
+ projectId: project.id,
295
+ projectUrl: `https://claude.ai/project/${project.id}`,
296
+ },
297
+ warnings,
298
+ errors,
299
+ manualSteps: manualSteps.length > 0 ? manualSteps : undefined,
300
+ };
301
+ }
302
+ catch (err) {
303
+ // Attempt partial recovery info
304
+ const errorMsg = err instanceof Error ? err.message : String(err);
305
+ errors.push(`Load failed: ${errorMsg}`);
306
+ return {
307
+ success: false,
308
+ loaded: {
309
+ instructions: this.state.instructionsLoaded,
310
+ memories: this.state.memoriesDocId ? 1 : 0,
311
+ files: this.state.uploadedFileIds.length,
312
+ customBots: 0,
313
+ },
314
+ created: this.state.projectId
315
+ ? {
316
+ projectId: this.state.projectId,
317
+ projectUrl: `https://claude.ai/project/${this.state.projectId}`,
318
+ }
319
+ : undefined,
320
+ warnings,
321
+ errors,
322
+ };
323
+ }
324
+ }
325
+ getProgress() {
326
+ return this.progress;
327
+ }
328
+ /**
329
+ * Get current load state for checkpointing.
330
+ */
331
+ getLoadState() {
332
+ return { ...this.state };
333
+ }
334
+ /**
335
+ * Set load state for resume.
336
+ */
337
+ setLoadState(state) {
338
+ this.state = { ...state };
339
+ }
340
+ // ─── Private Helpers ─────────────────────────────────────
341
+ formatMemoriesAsMarkdown(entries) {
342
+ const lines = [
343
+ '# Migrated Memories',
344
+ '',
345
+ `> These memories were migrated from your previous AI assistant.`,
346
+ `> Total: ${entries.length} memories`,
347
+ '',
348
+ ];
349
+ // Group by category if available
350
+ const byCategory = new Map();
351
+ for (const entry of entries) {
352
+ const category = entry.category || 'General';
353
+ if (!byCategory.has(category)) {
354
+ byCategory.set(category, []);
355
+ }
356
+ byCategory.get(category).push(entry);
357
+ }
358
+ for (const [category, items] of byCategory) {
359
+ lines.push(`## ${category}`, '');
360
+ for (const item of items) {
361
+ lines.push(`- ${item.content}`);
362
+ }
363
+ lines.push('');
364
+ }
365
+ return lines.join('\n');
366
+ }
367
+ formatContextSummary(summaries) {
368
+ const lines = [
369
+ '# Conversation Context Summary',
370
+ '',
371
+ `> Key insights extracted from ${summaries.length} conversations.`,
372
+ '',
373
+ ];
374
+ for (const summary of summaries) {
375
+ if (summary.keyPoints && summary.keyPoints.length > 0) {
376
+ lines.push(`## ${summary.title}`, '');
377
+ for (const point of summary.keyPoints) {
378
+ lines.push(`- ${point}`);
379
+ }
380
+ lines.push('');
381
+ }
382
+ }
383
+ return lines.join('\n');
384
+ }
385
+ async uploadFile(projectId, file, bundle, sizeLimit) {
386
+ // Check file size
387
+ if (file.size > sizeLimit) {
388
+ return {
389
+ success: false,
390
+ warning: `File ${file.filename} exceeds size limit (${file.size} > ${sizeLimit} bytes)`,
391
+ };
392
+ }
393
+ // Read file content
394
+ const filePath = file.path;
395
+ if (!existsSync(filePath)) {
396
+ return {
397
+ success: false,
398
+ warning: `File not found: ${filePath}`,
399
+ };
400
+ }
401
+ const content = await readFile(filePath);
402
+ const result = await this.client.uploadProjectFile(projectId, basename(file.filename), content, file.mimeType);
403
+ return { success: true, fileId: result.id };
404
+ }
405
+ dryRunResult(bundle, warnings) {
406
+ const capabilities = getPlatformCapabilities('claude');
407
+ // Check for potential issues
408
+ if (bundle.contents.instructions?.content &&
409
+ bundle.contents.instructions.content.length > capabilities.instructionLimit) {
410
+ warnings.push(`Instructions would be truncated: ${bundle.contents.instructions.content.length} > ${capabilities.instructionLimit} chars`);
411
+ }
412
+ if (bundle.contents.files?.files) {
413
+ for (const file of bundle.contents.files.files) {
414
+ if (file.size > capabilities.fileSizeLimit) {
415
+ warnings.push(`File ${file.filename} exceeds size limit`);
416
+ }
417
+ }
418
+ }
419
+ warnings.push('Dry run - no changes made');
420
+ return {
421
+ success: true,
422
+ loaded: {
423
+ instructions: !!bundle.contents.instructions,
424
+ memories: bundle.contents.memories?.count ?? 0,
425
+ files: bundle.contents.files?.count ?? 0,
426
+ customBots: 0,
427
+ },
428
+ warnings,
429
+ errors: [],
430
+ };
431
+ }
432
+ }
433
+ //# sourceMappingURL=claude.js.map