ai-vault 1.4.0 → 1.5.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/README.md +42 -18
- package/dist/cli.js +1 -1
- package/dist/cli.js.map +1 -1
- package/dist/commands/import.d.ts +1 -1
- package/dist/commands/import.d.ts.map +1 -1
- package/dist/commands/import.js +283 -54
- package/dist/commands/import.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +138 -16
- package/dist/commands/setup.js.map +1 -1
- package/dist/providers/chatgpt/index.d.ts +41 -0
- package/dist/providers/chatgpt/index.d.ts.map +1 -0
- package/dist/providers/chatgpt/index.js +220 -0
- package/dist/providers/chatgpt/index.js.map +1 -0
- package/dist/providers/chatgpt/index.spec.d.ts +5 -0
- package/dist/providers/chatgpt/index.spec.d.ts.map +1 -0
- package/dist/providers/chatgpt/index.spec.js +447 -0
- package/dist/providers/chatgpt/index.spec.js.map +1 -0
- package/dist/providers/index.d.ts +2 -1
- package/dist/providers/index.d.ts.map +1 -1
- package/dist/providers/index.js +3 -2
- package/dist/providers/index.js.map +1 -1
- package/dist/utils/scraper.d.ts.map +1 -1
- package/dist/utils/scraper.js +2 -0
- package/dist/utils/scraper.js.map +1 -1
- package/dist/utils/zip.d.ts +25 -0
- package/dist/utils/zip.d.ts.map +1 -0
- package/dist/utils/zip.js +90 -0
- package/dist/utils/zip.js.map +1 -0
- package/package.json +3 -1
package/README.md
CHANGED
|
@@ -24,14 +24,14 @@ Your AI interactions are valuable assets. They contain your thoughts, research,
|
|
|
24
24
|
|
|
25
25
|
### Supported Platforms
|
|
26
26
|
|
|
27
|
-
| Platform | Status
|
|
28
|
-
| ------------------- |
|
|
29
|
-
| **Grok (grok.com)** |
|
|
30
|
-
| **Grok on X** |
|
|
31
|
-
| **ChatGPT** |
|
|
32
|
-
| **Claude** | 📋 Planned
|
|
33
|
-
| **Gemini** | 📋 Planned
|
|
34
|
-
| **Perplexity** | 📋 Planned
|
|
27
|
+
| Platform | Status | Native Import | Web Scraping | Media Download |
|
|
28
|
+
| ------------------- | ----------- | ------------- | ------------ | -------------- |
|
|
29
|
+
| **Grok (grok.com)** | ✅ Complete | ✅ | ✅ | ✅ |
|
|
30
|
+
| **Grok on X** | ✅ Complete | ❌ | ✅ | ✅ |
|
|
31
|
+
| **ChatGPT** | ✅ Complete | ✅ | ✅ | ✅ |
|
|
32
|
+
| **Claude** | 📋 Planned | ✅ | ✅ | ✅ |
|
|
33
|
+
| **Gemini** | 📋 Planned | ✅ | ✅ | ✅ |
|
|
34
|
+
| **Perplexity** | 📋 Planned | ❌ | ✅ | ✅ |
|
|
35
35
|
|
|
36
36
|
**Note:** Grok has two separate providers due to separate account systems:
|
|
37
37
|
|
|
@@ -41,6 +41,9 @@ Your AI interactions are valuable assets. They contain your thoughts, research,
|
|
|
41
41
|
### Smart Features
|
|
42
42
|
|
|
43
43
|
- **Native Import Support** - Import from official platform exports (Grok, ChatGPT, Claude)
|
|
44
|
+
- **ZIP Import** - Import directly from ZIP files or unpacked directories
|
|
45
|
+
- **Auto-Detection** - Automatically detects provider from export format
|
|
46
|
+
- **Complete Media Preservation** - Imports images, DALL-E generations, audio, video files
|
|
44
47
|
- **Incremental Backups** - Only fetch new/updated conversations
|
|
45
48
|
- **Media Deduplication** - Don't store the same image twice
|
|
46
49
|
- **Flexible Scheduling** - Daily, weekly, or custom cron expressions
|
|
@@ -239,30 +242,41 @@ ai-vault archive --dry-run
|
|
|
239
242
|
Many platforms offer one-time data exports. AI Vault can import these and convert to its standardized format:
|
|
240
243
|
|
|
241
244
|
```bash
|
|
242
|
-
#
|
|
243
|
-
ai-vault import --
|
|
245
|
+
# Auto-detect provider from export (recommended)
|
|
246
|
+
ai-vault import --file ~/Downloads/chatgpt-export.zip --yes
|
|
247
|
+
|
|
248
|
+
# Import from unpacked directory
|
|
249
|
+
ai-vault import --file ~/Downloads/grok-export/
|
|
244
250
|
|
|
245
251
|
# Import with custom output directory
|
|
246
|
-
ai-vault import --
|
|
252
|
+
ai-vault import --file ~/Downloads/export.zip --output ~/Dropbox/AI-Backups
|
|
253
|
+
|
|
254
|
+
# Manually specify provider (optional)
|
|
255
|
+
ai-vault import --provider grok-web --file ~/Downloads/grok-export/
|
|
247
256
|
|
|
248
257
|
# Skip confirmation prompt
|
|
249
|
-
ai-vault import --
|
|
258
|
+
ai-vault import --file ~/Downloads/export.zip --yes
|
|
250
259
|
```
|
|
251
260
|
|
|
252
261
|
**Supported import formats:**
|
|
253
262
|
|
|
263
|
+
- **ChatGPT**: Export from settings → Data controls → Export data
|
|
264
|
+
- Supports ZIP files and unpacked directories
|
|
265
|
+
- Automatically imports all media (images, DALL-E generations, audio)
|
|
266
|
+
- Provider auto-detected from `conversations.json`
|
|
254
267
|
- **Grok (grok.com)**: Export from grok.com → Profile → Data & Privacy → Download your data
|
|
255
268
|
- Use `--provider grok-web` for standalone Grok conversations
|
|
269
|
+
- Supports ZIP files and unpacked directories
|
|
256
270
|
- **Grok on X**: Export from x.com/grok (if available)
|
|
257
271
|
- Use `--provider grok-x` for X-integrated Grok conversations
|
|
258
|
-
- **ChatGPT**: _(coming soon)_ Export from settings → Data controls → Export data
|
|
259
272
|
- **Claude**: _(coming soon)_ Export from settings
|
|
260
273
|
|
|
261
274
|
**Why import vs scraping?**
|
|
262
275
|
|
|
263
276
|
- ✅ Faster - no web automation needed
|
|
264
277
|
- ✅ More reliable - uses official export format
|
|
265
|
-
- ✅ Complete data - includes metadata
|
|
278
|
+
- ✅ Complete data - includes all metadata and media files
|
|
279
|
+
- ✅ Works with ZIP files or unpacked directories
|
|
266
280
|
- ✅ Works alongside automated scraping for incremental updates
|
|
267
281
|
|
|
268
282
|
### Schedule Automated Backups
|
|
@@ -464,10 +478,19 @@ See [docs/providers.md](docs/providers.md) for a detailed guide.
|
|
|
464
478
|
- [x] Project setup and architecture
|
|
465
479
|
- [x] Storage layer with JSON + Markdown export
|
|
466
480
|
- [x] Media downloader with SHA256 deduplication
|
|
467
|
-
- [x]
|
|
481
|
+
- [x] ZIP import support - Import directly from ZIP files or unpacked directories
|
|
482
|
+
- [x] Provider auto-detection from export file structure
|
|
483
|
+
- [x] Complete media preservation (images, DALL-E generations, audio, video)
|
|
484
|
+
- [x] Native import support:
|
|
485
|
+
- [x] **Grok**: Import from official grok.com exports with media
|
|
486
|
+
- [x] **ChatGPT**: Import from official OpenAI exports with media
|
|
468
487
|
- [x] Grok provider - two separate implementations:
|
|
469
488
|
- [x] **grok-web**: Standalone grok.com (cookies + scraping)
|
|
470
489
|
- [x] **grok-x**: X-integrated Grok at x.com/grok (cookies + scraping)
|
|
490
|
+
- [x] ChatGPT provider:
|
|
491
|
+
- [x] **Native import**: From conversations.json exports
|
|
492
|
+
- [x] **Web scraping**: Cookie-based authentication
|
|
493
|
+
- [x] **Media import**: Images, DALL-E generations, audio files
|
|
471
494
|
- [x] Smart filtering system:
|
|
472
495
|
- [x] Date range filtering (since/until)
|
|
473
496
|
- [x] Search query filtering (title/preview)
|
|
@@ -482,11 +505,12 @@ See [docs/providers.md](docs/providers.md) for a detailed guide.
|
|
|
482
505
|
### In Progress 🚧
|
|
483
506
|
|
|
484
507
|
- [ ] Additional provider implementations:
|
|
485
|
-
- [ ]
|
|
486
|
-
- [ ]
|
|
487
|
-
- [ ] Gemini provider (API + scraping)
|
|
508
|
+
- [ ] Claude provider (import + scraping)
|
|
509
|
+
- [ ] Gemini provider (import + scraping)
|
|
488
510
|
- [ ] Perplexity provider (scraping)
|
|
489
511
|
|
|
512
|
+
**Note:** API support refers to native import from official platform exports, not API-based conversation retrieval (which most platforms don't provide).
|
|
513
|
+
|
|
490
514
|
### Planned 📋
|
|
491
515
|
|
|
492
516
|
- [ ] Export to knowledge management tools (Obsidian, Notion, Roam)
|
package/dist/cli.js
CHANGED
|
@@ -51,7 +51,7 @@ program
|
|
|
51
51
|
program
|
|
52
52
|
.command('import')
|
|
53
53
|
.description('Import conversations from native platform exports')
|
|
54
|
-
.
|
|
54
|
+
.option('-p, --provider <provider>', 'Provider (grok, chatgpt, claude) - auto-detected if omitted')
|
|
55
55
|
.requiredOption('-f, --file <path>', 'Path to export file or directory')
|
|
56
56
|
.option('-o, --output <directory>', 'Output directory (overrides config)')
|
|
57
57
|
.option('-y, --yes', 'Skip confirmation prompt')
|
package/dist/cli.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":";AAEA;;GAEG;AAEH,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,EAAE,YAAY,EAAE,MAAM,IAAI,CAAC;AAClC,OAAO,EAAE,aAAa,EAAE,MAAM,KAAK,CAAC;AACpC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,MAAM,MAAM,CAAC;AAErC,wBAAwB;AACxB,MAAM,UAAU,GAAG,aAAa,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,CAAC,CAAC;AAClD,MAAM,SAAS,GAAG,OAAO,CAAC,UAAU,CAAC,CAAC;AACtC,MAAM,WAAW,GAAG,IAAI,CAAC,KAAK,CAAC,YAAY,CAAC,IAAI,CAAC,SAAS,EAAE,iBAAiB,CAAC,EAAE,OAAO,CAAC,CAAC,CAAC;AAE1F,MAAM,OAAO,GAAG,IAAI,OAAO,EAAE,CAAC;AAE9B,OAAO;KACJ,IAAI,CAAC,UAAU,CAAC;KAChB,WAAW,CACV,iJAAiJ,CAClJ;KACA,OAAO,CAAC,WAAW,CAAC,OAAO,EAAE,mBAAmB,EAAE,4BAA4B,CAAC,CAAC;AAEnF,OAAO;KACJ,OAAO,CAAC,OAAO,CAAC;KAChB,WAAW,CAAC,0BAA0B,CAAC;KACvC,MAAM,CAAC,uBAAuB,EAAE,mDAAmD,CAAC;KACpF,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,EAAE,YAAY,EAAE,GAAG,MAAM,MAAM,CAAC,qBAAqB,CAAC,CAAC;IAC7D,MAAM,YAAY,CAAC,OAAO,CAAC,CAAC;AAC9B,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,SAAS,CAAC;KAClB,WAAW,CAAC,iDAAiD,CAAC;KAC9D,MAAM,CAAC,2BAA2B,EAAE,8BAA8B,CAAC;KACnE,MAAM,CAAC,0BAA0B,EAAE,qCAAqC,CAAC;KACzE,MAAM,CAAC,gBAAgB,EAAE,+CAA+C,CAAC;KACzE,MAAM,CAAC,gBAAgB,EAAE,+CAA+C,CAAC;KACzE,MAAM,CAAC,kBAAkB,EAAE,4CAA4C,CAAC;KACxE,MAAM,CAAC,WAAW,EAAE,oDAAoD,CAAC;KACzE,MAAM,CAAC,cAAc,EAAE,+CAA+C,CAAC;KACvE,MAAM,CAAC,gBAAgB,EAAE,sCAAsC,CAAC;KAChE,MAAM,CAAC,KAAK,EAAE,OAAO,EAAE,EAAE;IACxB,MAAM,EAAE,cAAc,EAAE,GAAG,MAAM,MAAM,CAAC,uBAAuB,CAAC,CAAC;IACjE,MAAM,cAAc,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC,QAAQ;QAC1B,SAAS,EAAE,OAAO,CAAC,MAAM;QACzB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,KAAK,EAAE,OAAO,CAAC,KAAK;QACpB,MAAM,EAAE,OAAO,CAAC,MAAM;QACtB,SAAS,EAAE,OAAO,CAAC,SAAS;QAC5B,eAAe,EAAE,OAAO,CAAC,GAAG;KAC7B,CAAC,CAAC;AACL,CAAC,CAAC,CAAC;AAEL,OAAO;KACJ,OAAO,CAAC,QAAQ,CAAC;KACjB,WAAW,CAAC,mDAAmD,CAAC;KAChE,
|
|
1
|
+
{"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"AAAA;;GAEG;
|
|
1
|
+
{"version":3,"file":"import.d.ts","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"AAAA;;GAEG;AAYH,UAAU,aAAa;IACrB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,GAAG,CAAC,EAAE,OAAO,CAAC;CACf;AAiDD,wBAAsB,aAAa,CAAC,OAAO,EAAE,aAAa,GAAG,OAAO,CAAC,IAAI,CAAC,CAwLzE"}
|
package/dist/commands/import.js
CHANGED
|
@@ -3,75 +3,205 @@
|
|
|
3
3
|
*/
|
|
4
4
|
import * as clack from '@clack/prompts';
|
|
5
5
|
import chalk from 'chalk';
|
|
6
|
-
import { readFileSync, existsSync, statSync, readdirSync } from 'fs';
|
|
6
|
+
import { readFileSync, existsSync, statSync, readdirSync, cpSync, mkdirSync } from 'fs';
|
|
7
7
|
import { resolve, join } from 'path';
|
|
8
|
+
import path from 'path';
|
|
8
9
|
import { loadConfig } from '../utils/config.js';
|
|
9
10
|
import { createArchiver } from '../core/archiver.js';
|
|
11
|
+
import { prepareImportPath } from '../utils/zip.js';
|
|
12
|
+
/**
|
|
13
|
+
* Auto-detect provider from export file structure
|
|
14
|
+
*/
|
|
15
|
+
async function detectProvider(filePath) {
|
|
16
|
+
const stat = statSync(filePath);
|
|
17
|
+
if (stat.isDirectory()) {
|
|
18
|
+
const files = readdirSync(filePath);
|
|
19
|
+
// ChatGPT: has conversations.json
|
|
20
|
+
if (files.includes('conversations.json')) {
|
|
21
|
+
return 'chatgpt';
|
|
22
|
+
}
|
|
23
|
+
// Grok: has files with 'grok-backend' or 'prod-grok-backend'
|
|
24
|
+
if (files.some((f) => f.includes('grok-backend') || f.includes('prod-grok-backend'))) {
|
|
25
|
+
return 'grok-web';
|
|
26
|
+
}
|
|
27
|
+
}
|
|
28
|
+
else {
|
|
29
|
+
// Single file - check filename and structure
|
|
30
|
+
const filename = path.basename(filePath);
|
|
31
|
+
if (filename === 'conversations.json') {
|
|
32
|
+
// Peek inside to check structure
|
|
33
|
+
try {
|
|
34
|
+
const content = readFileSync(filePath, 'utf-8');
|
|
35
|
+
const data = JSON.parse(content);
|
|
36
|
+
const first = Array.isArray(data) ? data[0] : data;
|
|
37
|
+
// ChatGPT has 'mapping' field
|
|
38
|
+
if (first && first.mapping) {
|
|
39
|
+
return 'chatgpt';
|
|
40
|
+
}
|
|
41
|
+
// Grok has 'conversations' and 'responses' arrays
|
|
42
|
+
if (first && first.conversations) {
|
|
43
|
+
return 'grok-web';
|
|
44
|
+
}
|
|
45
|
+
}
|
|
46
|
+
catch {
|
|
47
|
+
// Invalid JSON, can't detect
|
|
48
|
+
}
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
return null;
|
|
52
|
+
}
|
|
10
53
|
export async function importCommand(options) {
|
|
11
54
|
clack.intro(chalk.bold.blue('AI Vault Import'));
|
|
12
|
-
const {
|
|
55
|
+
const { file } = options;
|
|
13
56
|
// Validate file exists
|
|
14
57
|
const filePath = resolve(file);
|
|
15
58
|
if (!existsSync(filePath)) {
|
|
16
59
|
clack.log.error(`File or directory not found: ${filePath}`);
|
|
17
60
|
process.exit(1);
|
|
18
61
|
}
|
|
19
|
-
//
|
|
20
|
-
|
|
21
|
-
let
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
clack.log.info(`Provider: ${provider}`);
|
|
28
|
-
clack.log.info(`Import from: ${filePath}`);
|
|
29
|
-
clack.log.info(`Output: ${archiveDir || '~/ai-vault-data (default)'}`);
|
|
30
|
-
console.log();
|
|
31
|
-
// Import based on provider
|
|
32
|
-
let conversations;
|
|
33
|
-
switch (provider.toLowerCase()) {
|
|
34
|
-
case 'grok':
|
|
35
|
-
({ conversations } = await importGrok(filePath));
|
|
36
|
-
break;
|
|
37
|
-
default:
|
|
38
|
-
clack.log.error(`Import not yet supported for provider: ${provider}`);
|
|
39
|
-
clack.log.info('Supported providers: grok');
|
|
40
|
-
process.exit(1);
|
|
41
|
-
}
|
|
42
|
-
clack.log.success(`Parsed ${conversations.length} conversations`);
|
|
43
|
-
console.log();
|
|
44
|
-
// Confirm import (skip if --yes flag)
|
|
45
|
-
if (!options.yes) {
|
|
46
|
-
const confirm = await clack.confirm({
|
|
47
|
-
message: `Import ${conversations.length} conversations to archive?`,
|
|
48
|
-
});
|
|
49
|
-
if (clack.isCancel(confirm) || !confirm) {
|
|
50
|
-
clack.cancel('Import cancelled');
|
|
51
|
-
process.exit(0);
|
|
62
|
+
// Handle ZIP files or directories
|
|
63
|
+
let processPath;
|
|
64
|
+
let cleanup;
|
|
65
|
+
let isTemporary;
|
|
66
|
+
try {
|
|
67
|
+
({ processPath, cleanup, isTemporary } = prepareImportPath(filePath));
|
|
68
|
+
if (isTemporary) {
|
|
69
|
+
clack.log.info(`Extracting ZIP file...`);
|
|
52
70
|
}
|
|
71
|
+
// Auto-detect provider if not specified
|
|
72
|
+
let provider = options.provider;
|
|
73
|
+
if (!provider) {
|
|
74
|
+
const detected = await detectProvider(processPath);
|
|
75
|
+
if (!detected) {
|
|
76
|
+
clack.log.error('Could not auto-detect provider from export format.');
|
|
77
|
+
clack.log.info('Please specify the provider with --provider flag');
|
|
78
|
+
clack.log.info('Supported providers: grok, grok-web, chatgpt');
|
|
79
|
+
process.exit(1);
|
|
80
|
+
}
|
|
81
|
+
provider = detected;
|
|
82
|
+
clack.log.success(`Auto-detected provider: ${provider}`);
|
|
83
|
+
}
|
|
84
|
+
// Load config for output directory
|
|
85
|
+
const config = await loadConfig();
|
|
86
|
+
let archiveDir = options.output || config.settings?.archiveDir;
|
|
87
|
+
// Expand ~ to home directory
|
|
88
|
+
if (archiveDir && archiveDir.startsWith('~')) {
|
|
89
|
+
const os = await import('os');
|
|
90
|
+
archiveDir = archiveDir.replace(/^~/, os.homedir());
|
|
91
|
+
}
|
|
92
|
+
clack.log.info(`Provider: ${provider}`);
|
|
93
|
+
clack.log.info(`Import from: ${filePath}`);
|
|
94
|
+
clack.log.info(`Output: ${archiveDir || '~/ai-vault-data (default)'}`);
|
|
95
|
+
console.log();
|
|
96
|
+
// Import based on provider
|
|
97
|
+
let conversations;
|
|
98
|
+
let sourceMediaDir;
|
|
99
|
+
switch (provider.toLowerCase()) {
|
|
100
|
+
case 'grok':
|
|
101
|
+
case 'grok-web':
|
|
102
|
+
({ conversations, mediaDir: sourceMediaDir } = await importGrok(processPath));
|
|
103
|
+
break;
|
|
104
|
+
case 'chatgpt':
|
|
105
|
+
({ conversations, mediaDir: sourceMediaDir } = await importChatGPT(processPath));
|
|
106
|
+
break;
|
|
107
|
+
default:
|
|
108
|
+
clack.log.error(`Import not yet supported for provider: ${provider}`);
|
|
109
|
+
clack.log.info('Supported providers: grok, grok-web, chatgpt');
|
|
110
|
+
process.exit(1);
|
|
111
|
+
}
|
|
112
|
+
// Count total media files
|
|
113
|
+
const totalMedia = conversations.reduce((sum, c) => sum + (c.metadata.mediaCount || 0), 0);
|
|
114
|
+
clack.log.success(`Parsed ${conversations.length} conversations${totalMedia > 0 ? ` with ${totalMedia} media files` : ''}`);
|
|
115
|
+
console.log();
|
|
116
|
+
// Confirm import (skip if --yes flag)
|
|
117
|
+
if (!options.yes) {
|
|
118
|
+
const confirm = await clack.confirm({
|
|
119
|
+
message: `Import ${conversations.length} conversations to archive?`,
|
|
120
|
+
});
|
|
121
|
+
if (clack.isCancel(confirm) || !confirm) {
|
|
122
|
+
clack.cancel('Import cancelled');
|
|
123
|
+
process.exit(0);
|
|
124
|
+
}
|
|
125
|
+
}
|
|
126
|
+
// Save conversations using archiver
|
|
127
|
+
const archiver = createArchiver(archiveDir);
|
|
128
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
129
|
+
const storage = archiver.storage; // Access storage from archiver
|
|
130
|
+
const spinner = clack.spinner();
|
|
131
|
+
spinner.start('Importing conversations...');
|
|
132
|
+
let imported = 0;
|
|
133
|
+
let errors = 0;
|
|
134
|
+
for (const conversation of conversations) {
|
|
135
|
+
try {
|
|
136
|
+
await storage.saveConversation(conversation);
|
|
137
|
+
imported++;
|
|
138
|
+
spinner.message(`Imported ${imported}/${conversations.length}...`);
|
|
139
|
+
}
|
|
140
|
+
catch (error) {
|
|
141
|
+
errors++;
|
|
142
|
+
console.error(`Failed to import ${conversation.id}:`, error);
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
spinner.stop();
|
|
146
|
+
// Copy media files if present
|
|
147
|
+
if (sourceMediaDir && existsSync(sourceMediaDir)) {
|
|
148
|
+
const mediaSpinner = clack.spinner();
|
|
149
|
+
mediaSpinner.start('Copying media files...');
|
|
150
|
+
try {
|
|
151
|
+
// Get provider-specific media directory in archive
|
|
152
|
+
const targetMediaBase = path.join(archiveDir || '~/ai-vault-data', provider, 'media');
|
|
153
|
+
mkdirSync(targetMediaBase, { recursive: true });
|
|
154
|
+
// Copy all media files from source directory
|
|
155
|
+
let mediaFilesCopied = 0;
|
|
156
|
+
const files = readdirSync(sourceMediaDir);
|
|
157
|
+
for (const file of files) {
|
|
158
|
+
const sourcePath = join(sourceMediaDir, file);
|
|
159
|
+
const stat = statSync(sourcePath);
|
|
160
|
+
if (stat.isDirectory()) {
|
|
161
|
+
// Copy entire directory (e.g., dalle-generations, conversation folders)
|
|
162
|
+
const targetPath = join(targetMediaBase, file);
|
|
163
|
+
cpSync(sourcePath, targetPath, { recursive: true });
|
|
164
|
+
// Count files in directory
|
|
165
|
+
const countFiles = (dir) => {
|
|
166
|
+
let count = 0;
|
|
167
|
+
const items = readdirSync(dir);
|
|
168
|
+
for (const item of items) {
|
|
169
|
+
const itemPath = join(dir, item);
|
|
170
|
+
if (statSync(itemPath).isDirectory()) {
|
|
171
|
+
count += countFiles(itemPath);
|
|
172
|
+
}
|
|
173
|
+
else {
|
|
174
|
+
count++;
|
|
175
|
+
}
|
|
176
|
+
}
|
|
177
|
+
return count;
|
|
178
|
+
};
|
|
179
|
+
mediaFilesCopied += countFiles(sourcePath);
|
|
180
|
+
}
|
|
181
|
+
else if (file.startsWith('file-') ||
|
|
182
|
+
/\.(jpg|jpeg|png|gif|webp|mp3|mp4|wav)$/i.test(file)) {
|
|
183
|
+
// Copy individual media files
|
|
184
|
+
const targetPath = join(targetMediaBase, file);
|
|
185
|
+
cpSync(sourcePath, targetPath);
|
|
186
|
+
mediaFilesCopied++;
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
mediaSpinner.stop(`✓ Copied ${mediaFilesCopied} media files`);
|
|
190
|
+
}
|
|
191
|
+
catch (error) {
|
|
192
|
+
mediaSpinner.stop('Failed to copy some media files');
|
|
193
|
+
console.error('Media copy error:', error);
|
|
194
|
+
}
|
|
195
|
+
}
|
|
196
|
+
console.log();
|
|
197
|
+
clack.outro(chalk.green(`✓ Import complete! Imported ${imported} conversations${errors > 0 ? ` (${errors} errors)` : ''}`));
|
|
53
198
|
}
|
|
54
|
-
|
|
55
|
-
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
spinner.start('Importing conversations...');
|
|
59
|
-
let imported = 0;
|
|
60
|
-
let errors = 0;
|
|
61
|
-
for (const conversation of conversations) {
|
|
62
|
-
try {
|
|
63
|
-
await storage.saveConversation(conversation);
|
|
64
|
-
imported++;
|
|
65
|
-
spinner.message(`Imported ${imported}/${conversations.length}...`);
|
|
66
|
-
}
|
|
67
|
-
catch (error) {
|
|
68
|
-
errors++;
|
|
69
|
-
console.error(`Failed to import ${conversation.id}:`, error);
|
|
199
|
+
finally {
|
|
200
|
+
// Clean up temporary files if ZIP was extracted
|
|
201
|
+
if (cleanup) {
|
|
202
|
+
cleanup();
|
|
70
203
|
}
|
|
71
204
|
}
|
|
72
|
-
spinner.stop();
|
|
73
|
-
console.log();
|
|
74
|
-
clack.outro(chalk.green(`✓ Import complete! Imported ${imported} conversations${errors > 0 ? ` (${errors} errors)` : ''}`));
|
|
75
205
|
}
|
|
76
206
|
/**
|
|
77
207
|
* Import from Grok's native export format
|
|
@@ -109,6 +239,7 @@ async function importGrok(filePath) {
|
|
|
109
239
|
const conv = item.conversation;
|
|
110
240
|
const responses = item.responses || [];
|
|
111
241
|
// Convert responses to messages
|
|
242
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
112
243
|
const messages = responses.map((r) => {
|
|
113
244
|
const response = r.response;
|
|
114
245
|
return {
|
|
@@ -151,4 +282,102 @@ async function importGrok(filePath) {
|
|
|
151
282
|
spinner.stop(`✓ Parsed ${conversations.length} conversations`);
|
|
152
283
|
return { conversations, mediaDir };
|
|
153
284
|
}
|
|
285
|
+
/**
|
|
286
|
+
* Import from ChatGPT's native export format
|
|
287
|
+
*/
|
|
288
|
+
async function importChatGPT(filePath) {
|
|
289
|
+
const spinner = clack.spinner();
|
|
290
|
+
spinner.start('Reading ChatGPT export...');
|
|
291
|
+
const stat = statSync(filePath);
|
|
292
|
+
let jsonFile;
|
|
293
|
+
let mediaDir;
|
|
294
|
+
if (stat.isDirectory()) {
|
|
295
|
+
// Export is a directory - find conversations.json
|
|
296
|
+
const files = readdirSync(filePath);
|
|
297
|
+
const conversationsJson = files.find((f) => f === 'conversations.json');
|
|
298
|
+
if (!conversationsJson) {
|
|
299
|
+
spinner.stop('Failed');
|
|
300
|
+
throw new Error('Could not find conversations.json in export directory');
|
|
301
|
+
}
|
|
302
|
+
jsonFile = join(filePath, conversationsJson);
|
|
303
|
+
// Check for media files (images, DALL-E generations, audio, etc.)
|
|
304
|
+
const hasMediaFiles = files.some((f) => f.startsWith('file-') ||
|
|
305
|
+
f === 'dalle-generations' ||
|
|
306
|
+
(statSync(join(filePath, f)).isDirectory() && f !== '.' && f !== '..'));
|
|
307
|
+
if (hasMediaFiles) {
|
|
308
|
+
mediaDir = filePath; // Use the export directory as media source
|
|
309
|
+
}
|
|
310
|
+
}
|
|
311
|
+
else {
|
|
312
|
+
// Single JSON file
|
|
313
|
+
jsonFile = filePath;
|
|
314
|
+
}
|
|
315
|
+
spinner.message('Parsing conversations...');
|
|
316
|
+
const content = readFileSync(jsonFile, 'utf-8');
|
|
317
|
+
const data = JSON.parse(content);
|
|
318
|
+
// data is an array of conversation objects
|
|
319
|
+
const conversationsList = Array.isArray(data) ? data : [data];
|
|
320
|
+
const conversations = [];
|
|
321
|
+
for (const conv of conversationsList) {
|
|
322
|
+
const messages = [];
|
|
323
|
+
// The mapping contains message nodes
|
|
324
|
+
const mapping = conv.mapping || {};
|
|
325
|
+
// Build message tree from mapping
|
|
326
|
+
// eslint-disable-next-line @typescript-eslint/no-explicit-any
|
|
327
|
+
const messageNodes = [];
|
|
328
|
+
for (const nodeId in mapping) {
|
|
329
|
+
const node = mapping[nodeId];
|
|
330
|
+
if (node.message && node.message.content && node.message.content.parts) {
|
|
331
|
+
messageNodes.push(node);
|
|
332
|
+
}
|
|
333
|
+
}
|
|
334
|
+
// Sort by create_time
|
|
335
|
+
messageNodes.sort((a, b) => {
|
|
336
|
+
const timeA = a.message.create_time || 0;
|
|
337
|
+
const timeB = b.message.create_time || 0;
|
|
338
|
+
return timeA - timeB;
|
|
339
|
+
});
|
|
340
|
+
// Convert to standard message format
|
|
341
|
+
for (const node of messageNodes) {
|
|
342
|
+
const msg = node.message;
|
|
343
|
+
const role = msg.author.role;
|
|
344
|
+
// Skip system messages
|
|
345
|
+
if (role === 'system')
|
|
346
|
+
continue;
|
|
347
|
+
const content = Array.isArray(msg.content.parts)
|
|
348
|
+
? msg.content.parts.join('\\n')
|
|
349
|
+
: String(msg.content.parts || '');
|
|
350
|
+
if (!content.trim())
|
|
351
|
+
continue;
|
|
352
|
+
messages.push({
|
|
353
|
+
id: msg.id,
|
|
354
|
+
role: role === 'user' ? 'user' : 'assistant',
|
|
355
|
+
content,
|
|
356
|
+
timestamp: new Date((msg.create_time || Date.now() / 1000) * 1000),
|
|
357
|
+
metadata: {
|
|
358
|
+
model: msg.metadata?.model_slug,
|
|
359
|
+
},
|
|
360
|
+
});
|
|
361
|
+
}
|
|
362
|
+
// Skip conversations with no messages
|
|
363
|
+
if (messages.length === 0)
|
|
364
|
+
continue;
|
|
365
|
+
const conversation = {
|
|
366
|
+
id: conv.id,
|
|
367
|
+
provider: 'chatgpt',
|
|
368
|
+
title: conv.title || 'Untitled',
|
|
369
|
+
messages,
|
|
370
|
+
createdAt: new Date(conv.create_time * 1000),
|
|
371
|
+
updatedAt: new Date(conv.update_time * 1000),
|
|
372
|
+
metadata: {
|
|
373
|
+
messageCount: messages.length,
|
|
374
|
+
characterCount: messages.reduce((sum, m) => sum + m.content.length, 0),
|
|
375
|
+
mediaCount: 0, // TODO: Extract media from content
|
|
376
|
+
},
|
|
377
|
+
};
|
|
378
|
+
conversations.push(conversation);
|
|
379
|
+
}
|
|
380
|
+
spinner.stop(`✓ Parsed ${conversations.length} conversations`);
|
|
381
|
+
return { conversations, mediaDir };
|
|
382
|
+
}
|
|
154
383
|
//# sourceMappingURL=import.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"import.js","sourceRoot":"","sources":["../../src/commands/import.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,UAAU,YAAY;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"setup.d.ts","sourceRoot":"","sources":["../../src/commands/setup.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,UAAU,YAAY;IACpB,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,wBAAsB,YAAY,CAAC,OAAO,GAAE,YAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA+D5E"}
|