ai-vault 1.3.0 → 1.4.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 (105) hide show
  1. package/README.md +243 -32
  2. package/dist/cli.js +61 -18
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/archive.d.ts +16 -0
  5. package/dist/commands/archive.d.ts.map +1 -0
  6. package/dist/commands/archive.js +176 -0
  7. package/dist/commands/archive.js.map +1 -0
  8. package/dist/commands/import.d.ts +12 -0
  9. package/dist/commands/import.d.ts.map +1 -0
  10. package/dist/commands/import.js +154 -0
  11. package/dist/commands/import.js.map +1 -0
  12. package/dist/commands/list.d.ts +13 -0
  13. package/dist/commands/list.d.ts.map +1 -0
  14. package/dist/commands/list.js +89 -0
  15. package/dist/commands/list.js.map +1 -0
  16. package/dist/commands/schedule.d.ts +16 -0
  17. package/dist/commands/schedule.d.ts.map +1 -0
  18. package/dist/commands/schedule.js +346 -0
  19. package/dist/commands/schedule.js.map +1 -0
  20. package/dist/commands/setup.d.ts +9 -0
  21. package/dist/commands/setup.d.ts.map +1 -0
  22. package/dist/commands/setup.js +233 -0
  23. package/dist/commands/setup.js.map +1 -0
  24. package/dist/core/archiver.d.ts +37 -0
  25. package/dist/core/archiver.d.ts.map +1 -0
  26. package/dist/core/archiver.js +203 -0
  27. package/dist/core/archiver.js.map +1 -0
  28. package/dist/core/archiver.spec.d.ts +5 -0
  29. package/dist/core/archiver.spec.d.ts.map +1 -0
  30. package/dist/core/archiver.spec.js +439 -0
  31. package/dist/core/archiver.spec.js.map +1 -0
  32. package/dist/core/media.d.ts +77 -0
  33. package/dist/core/media.d.ts.map +1 -0
  34. package/dist/core/media.js +286 -0
  35. package/dist/core/media.js.map +1 -0
  36. package/dist/core/media.spec.d.ts +5 -0
  37. package/dist/core/media.spec.d.ts.map +1 -0
  38. package/dist/core/media.spec.js +401 -0
  39. package/dist/core/media.spec.js.map +1 -0
  40. package/dist/core/storage.d.ts +74 -0
  41. package/dist/core/storage.d.ts.map +1 -0
  42. package/dist/core/storage.js +199 -0
  43. package/dist/core/storage.js.map +1 -0
  44. package/dist/core/storage.spec.d.ts +5 -0
  45. package/dist/core/storage.spec.d.ts.map +1 -0
  46. package/dist/core/storage.spec.js +268 -0
  47. package/dist/core/storage.spec.js.map +1 -0
  48. package/dist/providers/base.d.ts +2 -2
  49. package/dist/providers/base.d.ts.map +1 -1
  50. package/dist/providers/grok-web/index.d.ts +36 -0
  51. package/dist/providers/grok-web/index.d.ts.map +1 -0
  52. package/dist/providers/grok-web/index.js +186 -0
  53. package/dist/providers/grok-web/index.js.map +1 -0
  54. package/dist/providers/grok-web/index.spec.d.ts +11 -0
  55. package/dist/providers/grok-web/index.spec.d.ts.map +1 -0
  56. package/dist/providers/grok-web/index.spec.js +260 -0
  57. package/dist/providers/grok-web/index.spec.js.map +1 -0
  58. package/dist/providers/grok-x/index.d.ts +36 -0
  59. package/dist/providers/grok-x/index.d.ts.map +1 -0
  60. package/dist/providers/{grok → grok-x}/index.js +50 -113
  61. package/dist/providers/grok-x/index.js.map +1 -0
  62. package/dist/providers/grok-x/index.spec.d.ts +12 -0
  63. package/dist/providers/grok-x/index.spec.d.ts.map +1 -0
  64. package/dist/providers/grok-x/index.spec.js +251 -0
  65. package/dist/providers/grok-x/index.spec.js.map +1 -0
  66. package/dist/providers/index.d.ts +5 -4
  67. package/dist/providers/index.d.ts.map +1 -1
  68. package/dist/providers/index.js +5 -3
  69. package/dist/providers/index.js.map +1 -1
  70. package/dist/types/index.d.ts +12 -4
  71. package/dist/types/index.d.ts.map +1 -1
  72. package/dist/types/provider.d.ts +6 -2
  73. package/dist/types/provider.d.ts.map +1 -1
  74. package/dist/types/provider.js.map +1 -1
  75. package/dist/types/schedule.d.ts +50 -0
  76. package/dist/types/schedule.d.ts.map +1 -0
  77. package/dist/types/schedule.js +5 -0
  78. package/dist/types/schedule.js.map +1 -0
  79. package/dist/types/schemas.d.ts +30 -30
  80. package/dist/types/storage.d.ts +85 -0
  81. package/dist/types/storage.d.ts.map +1 -0
  82. package/dist/types/storage.js +5 -0
  83. package/dist/types/storage.js.map +1 -0
  84. package/dist/utils/api-client.js +1 -1
  85. package/dist/utils/api-client.js.map +1 -1
  86. package/dist/utils/api-client.spec.d.ts +5 -0
  87. package/dist/utils/api-client.spec.d.ts.map +1 -0
  88. package/dist/utils/api-client.spec.js +115 -0
  89. package/dist/utils/api-client.spec.js.map +1 -0
  90. package/dist/utils/config.d.ts +45 -0
  91. package/dist/utils/config.d.ts.map +1 -0
  92. package/dist/utils/config.js +69 -0
  93. package/dist/utils/config.js.map +1 -0
  94. package/dist/utils/schedule-manager.d.ts +59 -0
  95. package/dist/utils/schedule-manager.d.ts.map +1 -0
  96. package/dist/utils/schedule-manager.js +152 -0
  97. package/dist/utils/schedule-manager.js.map +1 -0
  98. package/dist/utils/scheduler.d.ts +78 -0
  99. package/dist/utils/scheduler.d.ts.map +1 -0
  100. package/dist/utils/scheduler.js +299 -0
  101. package/dist/utils/scheduler.js.map +1 -0
  102. package/package.json +12 -4
  103. package/dist/providers/grok/index.d.ts +0 -47
  104. package/dist/providers/grok/index.d.ts.map +0 -1
  105. package/dist/providers/grok/index.js.map +0 -1
package/README.md CHANGED
@@ -24,20 +24,27 @@ Your AI interactions are valuable assets. They contain your thoughts, research,
24
24
 
25
25
  ### Supported Platforms
26
26
 
27
- | Platform | Status | API Support | Web Scraping | Media Download |
28
- | --------------- | -------------- | ----------- | ------------ | -------------- |
29
- | **Grok (X.AI)** | 🚧 In Progress | | ✅ | ✅ |
30
- | **ChatGPT** | 📋 Planned | | ✅ | ✅ |
31
- | **Claude** | 📋 Planned | ✅ | ✅ | ✅ |
32
- | **Gemini** | 📋 Planned | ⚠️ Partial | ✅ | ✅ |
33
- | **Perplexity** | 📋 Planned | | ✅ | ✅ |
27
+ | Platform | Status | API Support | Web Scraping | Media Download |
28
+ | ------------------- | -------------- | ----------- | ------------ | -------------- |
29
+ | **Grok (grok.com)** | 🚧 In Progress | | ✅ | ✅ |
30
+ | **Grok on X** | 🚧 In Progress | | ✅ | ✅ |
31
+ | **ChatGPT** | 📋 Planned | ✅ | ✅ | ✅ |
32
+ | **Claude** | 📋 Planned | | ✅ | ✅ |
33
+ | **Gemini** | 📋 Planned | ⚠️ Partial | ✅ | ✅ |
34
+ | **Perplexity** | 📋 Planned | ❌ | ✅ | ✅ |
35
+
36
+ **Note:** Grok has two separate providers due to separate account systems:
37
+
38
+ - `grok-web`: Standalone grok.com platform (cookies authentication)
39
+ - `grok-x`: X-integrated Grok at x.com/grok (cookies authentication)
34
40
 
35
41
  ### Smart Features
36
42
 
43
+ - **Native Import Support** - Import from official platform exports (Grok, ChatGPT, Claude)
37
44
  - **Incremental Backups** - Only fetch new/updated conversations
38
45
  - **Media Deduplication** - Don't store the same image twice
39
46
  - **Flexible Scheduling** - Daily, weekly, or custom cron expressions
40
- - **Rich Export Formats** - JSON, Markdown, HTML with metadata
47
+ - **Rich Export Formats** - JSON + Markdown for maximum compatibility
41
48
  - **Automatic Cookie Management** - Extract session cookies from your browser
42
49
  - **Filtering & Targeting** - Date ranges, conversation importance, custom queries
43
50
 
@@ -155,11 +162,14 @@ rmdir /s %USERPROFILE%\ai-vault-data
155
162
  # Interactive setup wizard
156
163
  ai-vault setup
157
164
 
158
- # Run your first archive
165
+ # Option 1: Import from native export (fastest way to start)
166
+ ai-vault import --provider grok-web --file ~/Downloads/grok-export/ --yes
167
+
168
+ # Option 2: Archive via automated scraping
159
169
  ai-vault archive
160
170
 
161
171
  # Schedule automated backups
162
- ai-vault schedule --daily
172
+ ai-vault schedule add
163
173
 
164
174
  # List archived conversations
165
175
  ai-vault list
@@ -173,15 +183,30 @@ ai-vault upgrade
173
183
  ### Setup
174
184
 
175
185
  ```bash
186
+ # Interactive setup
176
187
  ai-vault setup
188
+
189
+ # Setup with cookies from file (easier for cookie-based auth)
190
+ ai-vault setup --cookies-file ~/Downloads/cookies.json
177
191
  ```
178
192
 
193
+ **For cookie-based authentication:**
194
+
195
+ 1. Install [Cookie-Editor](https://chrome.google.com/webstore/detail/cookie-editor/hlkenndednhfkekhgcdicdfddnkalmdm) extension
196
+ 2. Go to the provider's website and log in:
197
+ - **grok-web**: grok.com
198
+ - **grok-x**: x.com/grok
199
+ - Other providers as applicable
200
+ 3. Click Cookie-Editor → Export → JSON
201
+ 4. Save to a file
202
+ 5. Run `ai-vault setup --cookies-file <path>`
203
+
179
204
  The interactive wizard will:
180
205
 
181
206
  1. Choose which AI platforms to archive
182
207
  2. Configure authentication (API keys or browser cookies)
183
- 3. Set your backup preferences
184
- 4. Choose export formats
208
+ 3. Set your archive directory (default: `~/ai-vault-data`)
209
+ 4. Test your connection
185
210
 
186
211
  ### Archive Now
187
212
 
@@ -190,28 +215,100 @@ The interactive wizard will:
190
215
  ai-vault archive
191
216
 
192
217
  # Archive specific platform
193
- ai-vault archive --provider grok
218
+ ai-vault archive --provider grok-web
194
219
 
195
220
  # Archive with date filter
196
221
  ai-vault archive --since 2025-01-01
197
222
 
223
+ # Archive with custom output directory
224
+ ai-vault archive --output ~/Dropbox/AI-Backups
225
+ ai-vault archive -o /mnt/external/backups
226
+
227
+ # Limit number of conversations
228
+ ai-vault archive --limit 10
229
+
230
+ # Skip media downloads (faster, text only)
231
+ ai-vault archive --skip-media
232
+
198
233
  # Dry run (see what would be archived)
199
234
  ai-vault archive --dry-run
200
235
  ```
201
236
 
202
- ### Schedule Automated Backups
237
+ ### Import from Native Exports
238
+
239
+ Many platforms offer one-time data exports. AI Vault can import these and convert to its standardized format:
203
240
 
204
241
  ```bash
205
- # Set up daily backups
206
- ai-vault schedule --daily
242
+ # Import from Grok's native export
243
+ ai-vault import --provider grok-web --file ~/Downloads/grok-export/
207
244
 
208
- # Custom cron expression
209
- ai-vault schedule --cron "0 2 * * *" # Every day at 2 AM
245
+ # Import with custom output directory
246
+ ai-vault import --provider grok-web --file ~/Downloads/grok-export/ --output ~/Dropbox/AI-Backups
210
247
 
211
- # View scheduled jobs
212
- ai-vault schedule --list
248
+ # Skip confirmation prompt
249
+ ai-vault import --provider grok-web --file ~/Downloads/grok-export/ --yes
213
250
  ```
214
251
 
252
+ **Supported import formats:**
253
+
254
+ - **Grok (grok.com)**: Export from grok.com → Profile → Data & Privacy → Download your data
255
+ - Use `--provider grok-web` for standalone Grok conversations
256
+ - **Grok on X**: Export from x.com/grok (if available)
257
+ - Use `--provider grok-x` for X-integrated Grok conversations
258
+ - **ChatGPT**: _(coming soon)_ Export from settings → Data controls → Export data
259
+ - **Claude**: _(coming soon)_ Export from settings
260
+
261
+ **Why import vs scraping?**
262
+
263
+ - ✅ Faster - no web automation needed
264
+ - ✅ More reliable - uses official export format
265
+ - ✅ Complete data - includes metadata that might not be visible in UI
266
+ - ✅ Works alongside automated scraping for incremental updates
267
+
268
+ ### Schedule Automated Backups
269
+
270
+ AI Vault uses native OS schedulers (cron on Unix, Task Scheduler on Windows) for automated backups. No long-running daemon required!
271
+
272
+ ```bash
273
+ # Add a new schedule (interactive)
274
+ ai-vault schedule add
275
+
276
+ # Add schedule with options
277
+ ai-vault schedule add --provider grok-web --cron "0 2 * * *" --description "Daily Grok backup"
278
+
279
+ # List all schedules
280
+ ai-vault schedule list
281
+ # or simply
282
+ ai-vault schedule
283
+
284
+ # Show detailed status (includes system scheduler info)
285
+ ai-vault schedule status
286
+
287
+ # Remove a schedule
288
+ ai-vault schedule remove --id abc123
289
+
290
+ # Enable/disable schedules
291
+ ai-vault schedule enable --id abc123
292
+ ai-vault schedule disable --id abc123
293
+
294
+ # Advanced options
295
+ ai-vault schedule add \
296
+ --provider grok-web \
297
+ --cron "0 */6 * * *" \
298
+ --limit 100 \
299
+ --since-days 7 \
300
+ --skip-media
301
+ ```
302
+
303
+ **Schedule Options:**
304
+
305
+ - `--cron`: Cron expression (e.g., `"0 2 * * *"` for daily at 2 AM)
306
+ - `--limit`: Maximum conversations per run
307
+ - `--since-days`: Only archive conversations from last N days
308
+ - `--skip-media`: Skip downloading media files
309
+
310
+ **Logs:** Scheduled runs write logs to `~/.ai-vault/logs/<schedule-id>.log`
311
+
215
312
  ### List Archived Conversations
216
313
 
217
314
  ```bash
@@ -225,6 +322,95 @@ ai-vault list --provider chatgpt
225
322
  ai-vault list --search "machine learning"
226
323
  ```
227
324
 
325
+ ## ⚙️ Configuration
326
+
327
+ ### File Locations
328
+
329
+ **Configuration file:** `~/.ai-vault/config.json`
330
+
331
+ ```json
332
+ {
333
+ "version": "1.0.0",
334
+ "providers": {
335
+ "grok-web": {
336
+ "providerName": "grok-web",
337
+ "authMethod": "cookies",
338
+ "cookies": {
339
+ "auth_token": "your-session-cookie"
340
+ }
341
+ }
342
+ },
343
+ "settings": {
344
+ "archiveDir": "~/ai-vault-data"
345
+ }
346
+ }
347
+ ```
348
+
349
+ **Default archive directory:** `~/ai-vault-data`
350
+
351
+ ```
352
+ ~/ai-vault-data/
353
+ ├── grok-web/ # Standalone grok.com conversations
354
+ │ ├── conversations/
355
+ │ │ └── conv-123/
356
+ │ │ ├── conversation.json
357
+ │ │ └── conversation.md
358
+ │ ├── media/
359
+ │ │ ├── images/
360
+ │ │ ├── videos/
361
+ │ │ └── documents/
362
+ │ ├── index.json
363
+ │ └── media-registry.json
364
+ ├── grok-x/ # X-integrated Grok conversations
365
+ │ └── ... (same structure)
366
+ ├── chatgpt/
367
+ └── claude/
368
+ ```
369
+
370
+ ### Customizing Archive Directory
371
+
372
+ **Three ways to set the output directory** (in priority order):
373
+
374
+ 1. **CLI option** (per-command override):
375
+
376
+ ```bash
377
+ ai-vault archive --output ~/Dropbox/AI-Backups
378
+ ai-vault archive -o /mnt/external/backups
379
+ ```
380
+
381
+ 2. **Config file** (persistent setting):
382
+ Manually edit `~/.ai-vault/config.json`:
383
+
384
+ ```json
385
+ {
386
+ "settings": {
387
+ "archiveDir": "~/Documents/my-ai-archives"
388
+ }
389
+ }
390
+ ```
391
+
392
+ Or set during `ai-vault setup`
393
+
394
+ 3. **Default**: `~/ai-vault-data` (if nothing configured)
395
+
396
+ ### Export Format
397
+
398
+ Conversations are saved in **Markdown** by default:
399
+
400
+ - Human-readable and portable
401
+ - Works with Obsidian, Notion, VS Code, and any text editor
402
+ - Includes full conversation text + metadata
403
+
404
+ To change the format, edit `~/.ai-vault/config.json`:
405
+
406
+ ```json
407
+ {
408
+ "settings": {
409
+ "formats": ["markdown"] // Options: "markdown", "json", or both ["markdown", "json"]
410
+ }
411
+ }
412
+ ```
413
+
228
414
  ## 🏗️ Architecture
229
415
 
230
416
  AI Vault uses a **plugin-based provider architecture** that makes it easy to add new AI platforms:
@@ -233,7 +419,8 @@ AI Vault uses a **plugin-based provider architecture** that makes it easy to add
233
419
  src/
234
420
  ├── providers/ # Pluggable AI platform providers
235
421
  │ ├── base.ts # Abstract Provider interface
236
- │ ├── grok/ # Grok (X.AI) implementation
422
+ │ ├── grok-web/ # Grok (grok.com) implementation
423
+ │ ├── grok-x/ # Grok on X (x.com/grok) implementation
237
424
  │ ├── chatgpt/ # ChatGPT implementation
238
425
  │ └── claude/ # Claude implementation
239
426
  ├── core/ # Core archival logic
@@ -272,18 +459,42 @@ See [docs/providers.md](docs/providers.md) for a detailed guide.
272
459
 
273
460
  ## 📋 Roadmap
274
461
 
462
+ ### Completed ✅
463
+
275
464
  - [x] Project setup and architecture
276
- - [ ] Grok provider (API + scraping)
277
- - [ ] ChatGPT provider
278
- - [ ] Claude provider
279
- - [ ] Media downloader with deduplication
280
- - [ ] Smart filtering system
281
- - [ ] Scheduling with cron/launchd
282
- - [ ] Gemini provider
283
- - [ ] Perplexity provider
284
- - [ ] Export to knowledge management tools (Obsidian, Notion)
285
- - [ ] Search across all archived conversations
286
- - [ ] Web UI for browsing archives
465
+ - [x] Storage layer with JSON + Markdown export
466
+ - [x] Media downloader with SHA256 deduplication
467
+ - [x] Native import support (Grok ✓, ChatGPT & Claude coming soon)
468
+ - [x] Grok provider - two separate implementations:
469
+ - [x] **grok-web**: Standalone grok.com (cookies + scraping)
470
+ - [x] **grok-x**: X-integrated Grok at x.com/grok (cookies + scraping)
471
+ - [x] Smart filtering system:
472
+ - [x] Date range filtering (since/until)
473
+ - [x] Search query filtering (title/preview)
474
+ - [x] Conversation limit controls
475
+ - [x] List command for browsing before archiving
476
+ - [x] Scheduling system:
477
+ - [x] Platform-agnostic (cron on Unix, Task Scheduler on Windows)
478
+ - [x] Full CRUD operations (add, list, remove, enable, disable)
479
+ - [x] Per-provider schedule configuration
480
+ - [x] Logging infrastructure
481
+
482
+ ### In Progress 🚧
483
+
484
+ - [ ] Additional provider implementations:
485
+ - [ ] ChatGPT provider (import + API + scraping)
486
+ - [ ] Claude provider (import + API + scraping)
487
+ - [ ] Gemini provider (API + scraping)
488
+ - [ ] Perplexity provider (scraping)
489
+
490
+ ### Planned 📋
491
+
492
+ - [ ] Export to knowledge management tools (Obsidian, Notion, Roam)
493
+ - [ ] Full-text search across all archived conversations
494
+ - [ ] Web UI for browsing and exploring archives
495
+ - [ ] Conversation analytics and insights
496
+ - [ ] Automatic tagging and categorization
497
+ - [ ] Differential sync (only download changes)
287
498
 
288
499
  ## 📄 License
289
500
 
package/dist/cli.js CHANGED
@@ -19,38 +19,81 @@ program
19
19
  program
20
20
  .command('setup')
21
21
  .description('Interactive setup wizard')
22
- .action(async () => {
23
- console.log(chalk.blue('Setup wizard coming soon!'));
24
- console.log(chalk.gray('This will help you configure providers and authentication.'));
22
+ .option('--cookies-file <path>', 'Path to cookies JSON file (for cookie-based auth)')
23
+ .action(async (options) => {
24
+ const { setupCommand } = await import('./commands/setup.js');
25
+ await setupCommand(options);
25
26
  });
26
27
  program
27
28
  .command('archive')
28
29
  .description('Archive conversations from configured providers')
29
30
  .option('-p, --provider <provider>', 'Specific provider to archive')
30
- .option('--since <date>', 'Archive conversations since date')
31
+ .option('-o, --output <directory>', 'Output directory (overrides config)')
32
+ .option('--since <date>', 'Archive conversations since date (YYYY-MM-DD)')
33
+ .option('--until <date>', 'Archive conversations until date (YYYY-MM-DD)')
34
+ .option('--limit <number>', 'Maximum number of conversations to archive')
31
35
  .option('--dry-run', 'Preview what would be archived without downloading')
36
+ .option('--skip-media', 'Skip downloading media files (images, videos)')
37
+ .option('--ids <ids...>', 'Specific conversation IDs to archive')
38
+ .action(async (options) => {
39
+ const { archiveCommand } = await import('./commands/archive.js');
40
+ await archiveCommand({
41
+ provider: options.provider,
42
+ outputDir: options.output,
43
+ since: options.since,
44
+ until: options.until,
45
+ limit: options.limit,
46
+ dryRun: options.dryRun,
47
+ skipMedia: options.skipMedia,
48
+ conversationIds: options.ids,
49
+ });
50
+ });
51
+ program
52
+ .command('import')
53
+ .description('Import conversations from native platform exports')
54
+ .requiredOption('-p, --provider <provider>', 'Provider (grok, chatgpt, claude, etc.)')
55
+ .requiredOption('-f, --file <path>', 'Path to export file or directory')
56
+ .option('-o, --output <directory>', 'Output directory (overrides config)')
57
+ .option('-y, --yes', 'Skip confirmation prompt')
32
58
  .action(async (options) => {
33
- console.log(chalk.blue('Archive command coming soon!'));
34
- console.log(chalk.gray('Options:'), options);
59
+ const { importCommand } = await import('./commands/import.js');
60
+ await importCommand(options);
35
61
  });
36
62
  program
37
63
  .command('list')
38
- .description('List archived conversations')
39
- .option('-p, --provider <provider>', 'Filter by provider')
40
- .option('--search <query>', 'Search conversations')
64
+ .description('List conversations from configured providers')
65
+ .option('-p, --provider <provider>', 'Provider to list from (grok-web, grok-x, etc.)')
66
+ .option('--search <query>', 'Search conversations by title or preview')
67
+ .option('--since <date>', 'List conversations since date (YYYY-MM-DD)')
68
+ .option('--until <date>', 'List conversations until date (YYYY-MM-DD)')
69
+ .option('--limit <number>', 'Maximum number of conversations to list')
41
70
  .action(async (options) => {
42
- console.log(chalk.blue('List command coming soon!'));
43
- console.log(chalk.gray('Options:'), options);
71
+ const { listCommand } = await import('./commands/list.js');
72
+ await listCommand(options);
44
73
  });
45
74
  program
46
75
  .command('schedule')
47
- .description('Configure automated backup schedule')
48
- .option('--daily', 'Schedule daily backups')
49
- .option('--cron <expression>', 'Custom cron expression')
50
- .option('--list', 'List scheduled jobs')
51
- .action(async (options) => {
52
- console.log(chalk.blue('Schedule command coming soon!'));
53
- console.log(chalk.gray('Options:'), options);
76
+ .description('Manage automated archiving schedules')
77
+ .argument('[action]', 'Action: add, list, remove, enable, disable, status')
78
+ .option('--id <id>', 'Schedule ID (for remove/enable/disable)')
79
+ .option('-p, --provider <provider>', 'Provider to schedule')
80
+ .option('--cron <expression>', 'Cron expression (e.g., "0 2 * * *")')
81
+ .option('--description <text>', 'Schedule description')
82
+ .option('--limit <number>', 'Maximum conversations to archive per run')
83
+ .option('--since-days <days>', 'Only archive conversations from last N days')
84
+ .option('--skip-media', 'Skip downloading media files')
85
+ .action(async (action, options) => {
86
+ const { scheduleCommand } = await import('./commands/schedule.js');
87
+ await scheduleCommand({
88
+ action: action || 'list',
89
+ id: options.id,
90
+ provider: options.provider,
91
+ cron: options.cron,
92
+ description: options.description,
93
+ limit: options.limit,
94
+ sinceDays: options.sinceDays,
95
+ skipMedia: options.skipMedia,
96
+ });
54
97
  });
55
98
  program
56
99
  .command('upgrade')
package/dist/cli.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"cli.js","sourceRoot":"","sources":["../src/cli.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,16 @@
1
+ /**
2
+ * Archive Command - Archive conversations from providers
3
+ */
4
+ interface ArchiveCommandOptions {
5
+ provider?: string;
6
+ outputDir?: string;
7
+ since?: string;
8
+ until?: string;
9
+ limit?: string;
10
+ dryRun?: boolean;
11
+ skipMedia?: boolean;
12
+ conversationIds?: string[];
13
+ }
14
+ export declare function archiveCommand(options: ArchiveCommandOptions): Promise<void>;
15
+ export {};
16
+ //# sourceMappingURL=archive.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"archive.d.ts","sourceRoot":"","sources":["../../src/commands/archive.ts"],"names":[],"mappings":"AAAA;;GAEG;AAUH,UAAU,qBAAqB;IAC7B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;CAC5B;AAED,wBAAsB,cAAc,CAAC,OAAO,EAAE,qBAAqB,GAAG,OAAO,CAAC,IAAI,CAAC,CA2JlF"}