ai-vault 3.4.0 → 3.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/dist/cli.js +4 -0
- package/dist/cli.js.map +1 -1
- package/dist/commands/archive.d.ts +2 -0
- package/dist/commands/archive.d.ts.map +1 -1
- package/dist/commands/archive.js +8 -0
- package/dist/commands/archive.js.map +1 -1
- package/dist/commands/setup.d.ts.map +1 -1
- package/dist/commands/setup.js +139 -1
- package/dist/commands/setup.js.map +1 -1
- package/dist/core/archiver.d.ts.map +1 -1
- package/dist/core/archiver.js +15 -0
- package/dist/core/archiver.js.map +1 -1
- package/dist/core/archiver.spec.js +2 -0
- package/dist/core/archiver.spec.js.map +1 -1
- package/dist/providers/claude/index.d.ts +4 -7
- package/dist/providers/claude/index.d.ts.map +1 -1
- package/dist/providers/claude/index.js +97 -79
- package/dist/providers/claude/index.js.map +1 -1
- package/dist/providers/gemini/index.d.ts +56 -0
- package/dist/providers/gemini/index.d.ts.map +1 -0
- package/dist/providers/gemini/index.js +420 -0
- package/dist/providers/gemini/index.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/types/storage.d.ts +4 -0
- package/dist/types/storage.d.ts.map +1 -1
- package/dist/utils/scheduler.spec.js +1 -1
- package/dist/utils/scheduler.spec.js.map +1 -1
- package/package.json +1 -1
|
@@ -0,0 +1,420 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini Provider
|
|
3
|
+
*
|
|
4
|
+
* Supports:
|
|
5
|
+
* - Cookie-based scraping of gemini.google.com
|
|
6
|
+
*
|
|
7
|
+
* Authentication: Google account cookies from gemini.google.com
|
|
8
|
+
* Method: DOM scraping via BrowserScraper (no public API available)
|
|
9
|
+
*/
|
|
10
|
+
import { BaseProvider } from '../base.js';
|
|
11
|
+
import { AuthenticationError, NotFoundError } from '../../types/provider.js';
|
|
12
|
+
import { BrowserScraper } from '../../utils/scraper.js';
|
|
13
|
+
import chalk from 'chalk';
|
|
14
|
+
export class GeminiProvider extends BaseProvider {
|
|
15
|
+
name = 'gemini';
|
|
16
|
+
displayName = 'Gemini';
|
|
17
|
+
supportedAuthMethods = ['cookies'];
|
|
18
|
+
// Single shared page — must not be navigated concurrently
|
|
19
|
+
rateLimit = { maxConcurrent: 1 };
|
|
20
|
+
static CAPTCHA_COOLDOWN_MS = 60 * 60 * 1000; // 60 minutes
|
|
21
|
+
scraper;
|
|
22
|
+
cachedPage;
|
|
23
|
+
// Semaphore set when Google's sorry/CAPTCHA page is detected; expires after 60 minutes
|
|
24
|
+
captchaBlockedUntil = null;
|
|
25
|
+
// Timestamps from listConversations, used by fetchConversation to avoid new Date() fallback
|
|
26
|
+
conversationTimestamps = new Map();
|
|
27
|
+
/** Throws immediately if the CAPTCHA cooldown semaphore is still active. */
|
|
28
|
+
checkCaptchaBlock() {
|
|
29
|
+
if (!this.captchaBlockedUntil)
|
|
30
|
+
return;
|
|
31
|
+
if (Date.now() < this.captchaBlockedUntil.getTime()) {
|
|
32
|
+
const remaining = Math.ceil((this.captchaBlockedUntil.getTime() - Date.now()) / 60_000);
|
|
33
|
+
throw new Error(`Google bot-detection cooldown active — Gemini is blocked for ${remaining} more minute(s) ` +
|
|
34
|
+
`(until ${this.captchaBlockedUntil.toLocaleTimeString()}). Try again later.`);
|
|
35
|
+
}
|
|
36
|
+
// Semaphore has expired; clear it
|
|
37
|
+
this.captchaBlockedUntil = null;
|
|
38
|
+
}
|
|
39
|
+
/** Arms the CAPTCHA semaphore for 60 minutes and logs a warning. */
|
|
40
|
+
triggerCaptchaBlock() {
|
|
41
|
+
this.captchaBlockedUntil = new Date(Date.now() + GeminiProvider.CAPTCHA_COOLDOWN_MS);
|
|
42
|
+
process.stderr.write(`\n⚠ Google CAPTCHA detected. All Gemini operations are blocked until ` +
|
|
43
|
+
`${this.captchaBlockedUntil.toLocaleTimeString()} (60 minutes).\n`);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Get or create a reusable browser page.
|
|
47
|
+
* Does not navigate — callers are responsible for navigating to their target URL.
|
|
48
|
+
*/
|
|
49
|
+
async getOrCreatePage() {
|
|
50
|
+
const cachedPage = this.cachedPage;
|
|
51
|
+
if (cachedPage) {
|
|
52
|
+
try {
|
|
53
|
+
await cachedPage.evaluate(() => true);
|
|
54
|
+
return cachedPage;
|
|
55
|
+
}
|
|
56
|
+
catch {
|
|
57
|
+
this.cachedPage = undefined;
|
|
58
|
+
}
|
|
59
|
+
}
|
|
60
|
+
const page = await this.scraper.createPage({
|
|
61
|
+
cookies: this.config.cookies,
|
|
62
|
+
domain: '.google.com',
|
|
63
|
+
});
|
|
64
|
+
this.cachedPage = page;
|
|
65
|
+
return page;
|
|
66
|
+
}
|
|
67
|
+
/**
|
|
68
|
+
* Authenticate with Gemini using Google account cookies
|
|
69
|
+
*/
|
|
70
|
+
async authenticate(config) {
|
|
71
|
+
this.config = config;
|
|
72
|
+
if (config.authMethod !== 'cookies') {
|
|
73
|
+
throw new AuthenticationError('Only cookies authentication is supported for Gemini');
|
|
74
|
+
}
|
|
75
|
+
if (!config.cookies) {
|
|
76
|
+
throw new AuthenticationError('Google account cookies are required for Gemini');
|
|
77
|
+
}
|
|
78
|
+
this.scraper = new BrowserScraper();
|
|
79
|
+
await this.scraper.init();
|
|
80
|
+
return this.isAuthenticated();
|
|
81
|
+
}
|
|
82
|
+
/**
|
|
83
|
+
* Check if the current cookies give access to gemini.google.com
|
|
84
|
+
*/
|
|
85
|
+
async isAuthenticated() {
|
|
86
|
+
this.requireAuth();
|
|
87
|
+
this.checkCaptchaBlock();
|
|
88
|
+
const page = await this.scraper.createPage({
|
|
89
|
+
cookies: this.config.cookies,
|
|
90
|
+
domain: '.google.com',
|
|
91
|
+
});
|
|
92
|
+
try {
|
|
93
|
+
await page.goto('https://gemini.google.com/app', {
|
|
94
|
+
waitUntil: 'domcontentloaded',
|
|
95
|
+
timeout: 20000,
|
|
96
|
+
});
|
|
97
|
+
const url = page.url();
|
|
98
|
+
if (url.includes('consent.google.com')) {
|
|
99
|
+
throw new AuthenticationError('Redirected to Google consent page. Your cookies are incomplete — export ALL cookies ' +
|
|
100
|
+
'from gemini.google.com (including SOCS, SAPISID, SID, etc.) using a browser extension ' +
|
|
101
|
+
'like Cookie-Editor and re-run: ai-vault setup gemini --cookies-file <path>');
|
|
102
|
+
}
|
|
103
|
+
return !url.includes('accounts.google.com');
|
|
104
|
+
}
|
|
105
|
+
finally {
|
|
106
|
+
await page.close();
|
|
107
|
+
}
|
|
108
|
+
}
|
|
109
|
+
/**
|
|
110
|
+
* List conversations via the internal batchexecute API (MaZiqc RPC).
|
|
111
|
+
* Avoids DOM scroll scraping — uses cursor-based pagination from the network API.
|
|
112
|
+
*/
|
|
113
|
+
async listConversations(options = {}) {
|
|
114
|
+
this.requireAuth();
|
|
115
|
+
this.checkCaptchaBlock();
|
|
116
|
+
const page = await this.getOrCreatePage();
|
|
117
|
+
try {
|
|
118
|
+
await page.goto('https://gemini.google.com/app', {
|
|
119
|
+
waitUntil: 'domcontentloaded',
|
|
120
|
+
timeout: 30000,
|
|
121
|
+
});
|
|
122
|
+
const listUrl = page.url();
|
|
123
|
+
if (listUrl.includes('google.com/sorry')) {
|
|
124
|
+
this.triggerCaptchaBlock();
|
|
125
|
+
throw new Error('Google bot-detection triggered while listing conversations. ' +
|
|
126
|
+
`Gemini is blocked for 60 minutes (until ${this.captchaBlockedUntil.toLocaleTimeString()}).`);
|
|
127
|
+
}
|
|
128
|
+
if (listUrl.includes('accounts.google.com')) {
|
|
129
|
+
throw new AuthenticationError('Redirected to Google login — cookies may have expired');
|
|
130
|
+
}
|
|
131
|
+
// Extract WIZ_global_data session params required for batchexecute
|
|
132
|
+
const { sid, bl, at } = await page.evaluate(() => {
|
|
133
|
+
const wiz = window.WIZ_global_data ?? {};
|
|
134
|
+
return {
|
|
135
|
+
sid: String(wiz.FdrFJe ?? ''),
|
|
136
|
+
bl: String(wiz.cfb2h ?? ''),
|
|
137
|
+
at: String(wiz.SNlM0e ?? ''),
|
|
138
|
+
};
|
|
139
|
+
});
|
|
140
|
+
if (!sid || !bl || !at) {
|
|
141
|
+
throw new Error('Failed to extract Gemini session parameters from WIZ_global_data — ' +
|
|
142
|
+
'try re-authenticating with fresh cookies');
|
|
143
|
+
}
|
|
144
|
+
// Execute a batchexecute MaZiqc call from the browser context (cookies are automatic)
|
|
145
|
+
const batchExecute = (fReqJson) => page.evaluate(async ({ sid, bl, at, fReqJson, }) => {
|
|
146
|
+
const reqId = Math.floor(Math.random() * 900000) + 100000;
|
|
147
|
+
const url = `https://gemini.google.com/_/BardChatUi/data/batchexecute` +
|
|
148
|
+
`?rpcids=MaZiqc&source-path=%2Fapp` +
|
|
149
|
+
`&bl=${encodeURIComponent(bl)}&f.sid=${encodeURIComponent(sid)}` +
|
|
150
|
+
`&hl=en&_reqid=${reqId}&rt=c`;
|
|
151
|
+
const resp = await fetch(url, {
|
|
152
|
+
method: 'POST',
|
|
153
|
+
headers: {
|
|
154
|
+
'Content-Type': 'application/x-www-form-urlencoded;charset=utf-8',
|
|
155
|
+
'X-Same-Domain': '1',
|
|
156
|
+
},
|
|
157
|
+
body: `f.req=${encodeURIComponent(fReqJson)}&at=${encodeURIComponent(at)}`,
|
|
158
|
+
});
|
|
159
|
+
if (!resp.ok)
|
|
160
|
+
throw new Error(`batchexecute HTTP ${resp.status}`);
|
|
161
|
+
return resp.text();
|
|
162
|
+
}, { sid, bl, at, fReqJson });
|
|
163
|
+
// Parse the streaming batchexecute response to extract conversations and the next cursor.
|
|
164
|
+
// Response format: )]}' followed by SIZE\n[JSON]\n chunks.
|
|
165
|
+
const parseResponse = (text) => {
|
|
166
|
+
const startIdx = text.indexOf('[["wrb.fr","MaZiqc"');
|
|
167
|
+
if (startIdx === -1)
|
|
168
|
+
return { cursor: null, items: [] };
|
|
169
|
+
// Walk forward to find the matching closing bracket, skipping string contents
|
|
170
|
+
let depth = 0;
|
|
171
|
+
let inString = false;
|
|
172
|
+
let escaped = false;
|
|
173
|
+
let endIdx = startIdx;
|
|
174
|
+
for (let i = startIdx; i < text.length; i++) {
|
|
175
|
+
const ch = text[i];
|
|
176
|
+
if (escaped) {
|
|
177
|
+
escaped = false;
|
|
178
|
+
continue;
|
|
179
|
+
}
|
|
180
|
+
if (ch === '\\' && inString) {
|
|
181
|
+
escaped = true;
|
|
182
|
+
continue;
|
|
183
|
+
}
|
|
184
|
+
if (ch === '"') {
|
|
185
|
+
inString = !inString;
|
|
186
|
+
continue;
|
|
187
|
+
}
|
|
188
|
+
if (inString)
|
|
189
|
+
continue;
|
|
190
|
+
if (ch === '[' || ch === '{')
|
|
191
|
+
depth++;
|
|
192
|
+
else if (ch === ']' || ch === '}') {
|
|
193
|
+
if (--depth === 0) {
|
|
194
|
+
endIdx = i;
|
|
195
|
+
break;
|
|
196
|
+
}
|
|
197
|
+
}
|
|
198
|
+
}
|
|
199
|
+
let outer;
|
|
200
|
+
try {
|
|
201
|
+
outer = JSON.parse(text.substring(startIdx, endIdx + 1));
|
|
202
|
+
}
|
|
203
|
+
catch {
|
|
204
|
+
return { cursor: null, items: [] };
|
|
205
|
+
}
|
|
206
|
+
// outer = [["wrb.fr","MaZiqc","INNER_JSON_STRING",...]]
|
|
207
|
+
const entry = outer[0];
|
|
208
|
+
if (!Array.isArray(entry) || entry[1] !== 'MaZiqc' || typeof entry[2] !== 'string') {
|
|
209
|
+
return { cursor: null, items: [] };
|
|
210
|
+
}
|
|
211
|
+
let inner;
|
|
212
|
+
try {
|
|
213
|
+
inner = JSON.parse(entry[2]);
|
|
214
|
+
}
|
|
215
|
+
catch {
|
|
216
|
+
return { cursor: null, items: [] };
|
|
217
|
+
}
|
|
218
|
+
// inner = [null, cursor_or_null, [[conv_array, ...], ...]]
|
|
219
|
+
return {
|
|
220
|
+
cursor: inner[1] ?? null,
|
|
221
|
+
items: Array.isArray(inner[2]) ? inner[2] : [],
|
|
222
|
+
};
|
|
223
|
+
};
|
|
224
|
+
const toSummary = (conv) => {
|
|
225
|
+
// conv[0] = "c_<hex_id>", conv[1] = title, conv[5] = [sec, ns] timestamp
|
|
226
|
+
const rawId = String(conv[0] ?? '');
|
|
227
|
+
const id = rawId.replace(/^c_/, '');
|
|
228
|
+
if (!id)
|
|
229
|
+
return null;
|
|
230
|
+
const title = String(conv[1] ?? 'Untitled').trim() || 'Untitled';
|
|
231
|
+
const tsPair = Array.isArray(conv[5]) ? conv[5] : null;
|
|
232
|
+
const date = tsPair ? new Date(Number(tsPair[0]) * 1000) : new Date();
|
|
233
|
+
return { id, title, messageCount: 0, createdAt: date, updatedAt: date, hasMedia: false };
|
|
234
|
+
};
|
|
235
|
+
const allSummaries = [];
|
|
236
|
+
// 1. Pinned conversations (category flag [1,null,1])
|
|
237
|
+
try {
|
|
238
|
+
const fReq = JSON.stringify([
|
|
239
|
+
[['MaZiqc', JSON.stringify([13, null, [1, null, 1]]), null, 'generic']],
|
|
240
|
+
]);
|
|
241
|
+
const { items } = parseResponse(await batchExecute(fReq));
|
|
242
|
+
for (const conv of items) {
|
|
243
|
+
const s = toSummary(conv);
|
|
244
|
+
if (s)
|
|
245
|
+
allSummaries.push(s);
|
|
246
|
+
}
|
|
247
|
+
}
|
|
248
|
+
catch {
|
|
249
|
+
// Pinned fetch is best-effort; continue with regular conversations
|
|
250
|
+
}
|
|
251
|
+
// 2. Regular conversations with cursor pagination (category flag [0,null,1])
|
|
252
|
+
const MAX_PAGES = 200;
|
|
253
|
+
let cursor = null;
|
|
254
|
+
let pageCount = 0;
|
|
255
|
+
while (true) {
|
|
256
|
+
if (++pageCount > MAX_PAGES) {
|
|
257
|
+
console.log(chalk.yellow(`\n⚠ Gemini: reached ${MAX_PAGES} pagination pages, stopping.`));
|
|
258
|
+
break;
|
|
259
|
+
}
|
|
260
|
+
const innerArg = cursor === null
|
|
261
|
+
? JSON.stringify([13, null, [0, null, 1]])
|
|
262
|
+
: JSON.stringify([20, cursor, [0, null, 1]]);
|
|
263
|
+
const fReq = JSON.stringify([[['MaZiqc', innerArg, null, 'generic']]]);
|
|
264
|
+
const { cursor: nextCursor, items } = parseResponse(await batchExecute(fReq));
|
|
265
|
+
for (const conv of items) {
|
|
266
|
+
const s = toSummary(conv);
|
|
267
|
+
if (s)
|
|
268
|
+
allSummaries.push(s);
|
|
269
|
+
}
|
|
270
|
+
if (!nextCursor || nextCursor === cursor)
|
|
271
|
+
break;
|
|
272
|
+
cursor = nextCursor;
|
|
273
|
+
}
|
|
274
|
+
// Deduplicate: pinned conversations can also appear in the regular list
|
|
275
|
+
const dedupedMap = new Map();
|
|
276
|
+
for (const s of allSummaries) {
|
|
277
|
+
if (!dedupedMap.has(s.id))
|
|
278
|
+
dedupedMap.set(s.id, s);
|
|
279
|
+
}
|
|
280
|
+
// Cache timestamps for use in fetchConversation
|
|
281
|
+
for (const s of dedupedMap.values()) {
|
|
282
|
+
this.conversationTimestamps.set(s.id, { createdAt: s.createdAt, updatedAt: s.updatedAt });
|
|
283
|
+
}
|
|
284
|
+
let summaries = Array.from(dedupedMap.values());
|
|
285
|
+
if (options.since)
|
|
286
|
+
summaries = summaries.filter((c) => c.updatedAt >= options.since);
|
|
287
|
+
if (options.until)
|
|
288
|
+
summaries = summaries.filter((c) => c.updatedAt <= options.until);
|
|
289
|
+
if (options.limit)
|
|
290
|
+
summaries = summaries.slice(0, options.limit);
|
|
291
|
+
return summaries;
|
|
292
|
+
}
|
|
293
|
+
catch (error) {
|
|
294
|
+
this.cachedPage = undefined;
|
|
295
|
+
throw error;
|
|
296
|
+
}
|
|
297
|
+
}
|
|
298
|
+
/**
|
|
299
|
+
* Fetch a full conversation by navigating to its URL
|
|
300
|
+
*/
|
|
301
|
+
async fetchConversation(id) {
|
|
302
|
+
this.requireAuth();
|
|
303
|
+
this.checkCaptchaBlock();
|
|
304
|
+
const page = await this.getOrCreatePage();
|
|
305
|
+
try {
|
|
306
|
+
await page.goto(`https://gemini.google.com/app/${id}`, {
|
|
307
|
+
waitUntil: 'domcontentloaded',
|
|
308
|
+
timeout: 30000,
|
|
309
|
+
});
|
|
310
|
+
// Brief pause to avoid triggering Google's bot detection
|
|
311
|
+
await page.waitForTimeout(2500);
|
|
312
|
+
const url = page.url();
|
|
313
|
+
if (url.includes('accounts.google.com')) {
|
|
314
|
+
throw new AuthenticationError('Redirected to Google login — cookies may have expired');
|
|
315
|
+
}
|
|
316
|
+
if (url.includes('google.com/sorry')) {
|
|
317
|
+
this.triggerCaptchaBlock();
|
|
318
|
+
throw new Error('Google bot-detection triggered. ' +
|
|
319
|
+
`Gemini is blocked for 60 minutes (until ${this.captchaBlockedUntil.toLocaleTimeString()}).`);
|
|
320
|
+
}
|
|
321
|
+
// Gemini redirects to /app when a conversation is not found
|
|
322
|
+
if (!url.includes(`/app/${id}`)) {
|
|
323
|
+
throw new NotFoundError(`Conversation '${id}' not found`);
|
|
324
|
+
}
|
|
325
|
+
// Wait for the message thread — use 'attached' since Angular animations prevent 'visible'
|
|
326
|
+
await page.waitForSelector('[data-conversation-id], .conversation-container, model-response, user-query', { state: 'attached', timeout: 15000 });
|
|
327
|
+
// Extract messages and title (with timeout to prevent hanging on problematic pages)
|
|
328
|
+
const evalPromise = page.evaluate(({ convId }) => {
|
|
329
|
+
// Collect all turn elements in document order, tagged by role
|
|
330
|
+
const allPairs = [
|
|
331
|
+
...Array.from(document.querySelectorAll('user-query, [data-role="user"], .user-query-container')).map((el) => ({ el, role: 'user' })),
|
|
332
|
+
...Array.from(document.querySelectorAll('model-response, [data-role="model"], .model-response-text')).map((el) => ({ el, role: 'assistant' })),
|
|
333
|
+
].sort((a, b) => a.el.compareDocumentPosition(b.el) & Node.DOCUMENT_POSITION_FOLLOWING ? -1 : 1);
|
|
334
|
+
const messages = allPairs
|
|
335
|
+
.map((p, i) => {
|
|
336
|
+
const content = p.el.textContent?.trim() ?? '';
|
|
337
|
+
return content ? { id: `${convId}-${i}`, role: p.role, content } : null;
|
|
338
|
+
})
|
|
339
|
+
.filter(Boolean);
|
|
340
|
+
// Extract title: prefer <title> tag minus " - Gemini" suffix, then h1
|
|
341
|
+
const isGenericTitle = (t) => /^(Google\s+)?Gemini$/i.test(t) || /^Chats$/i.test(t);
|
|
342
|
+
let title = document.title?.replace(/\s*[-|]\s*Gemini\s*$/, '').trim() || '';
|
|
343
|
+
if (isGenericTitle(title))
|
|
344
|
+
title = '';
|
|
345
|
+
if (!title) {
|
|
346
|
+
title = document.querySelector('h1')?.textContent?.trim() || '';
|
|
347
|
+
}
|
|
348
|
+
if (!title || isGenericTitle(title)) {
|
|
349
|
+
title = `Gemini conversation ${convId}`;
|
|
350
|
+
}
|
|
351
|
+
return { messages, title };
|
|
352
|
+
}, { convId: id });
|
|
353
|
+
let evalTimeoutHandle;
|
|
354
|
+
const evalTimeout = new Promise((_, reject) => {
|
|
355
|
+
evalTimeoutHandle = setTimeout(() => reject(new Error(`Timeout extracting messages from conversation ${id}`)), 30_000);
|
|
356
|
+
});
|
|
357
|
+
let rawMessages, rawTitle;
|
|
358
|
+
try {
|
|
359
|
+
({ messages: rawMessages, title: rawTitle } = await Promise.race([
|
|
360
|
+
evalPromise,
|
|
361
|
+
evalTimeout,
|
|
362
|
+
]));
|
|
363
|
+
}
|
|
364
|
+
finally {
|
|
365
|
+
clearTimeout(evalTimeoutHandle);
|
|
366
|
+
}
|
|
367
|
+
// Use timestamps from listConversations if available; fall back to now only as last resort
|
|
368
|
+
const cachedTs = this.conversationTimestamps.get(id);
|
|
369
|
+
const createdAt = cachedTs?.createdAt ?? new Date();
|
|
370
|
+
const updatedAt = cachedTs?.updatedAt ?? new Date();
|
|
371
|
+
const messages = rawMessages.map((m, i) => ({
|
|
372
|
+
id: m.id,
|
|
373
|
+
role: m.role,
|
|
374
|
+
content: m.content,
|
|
375
|
+
// Spread message timestamps evenly across the conversation window if we have real dates
|
|
376
|
+
timestamp: cachedTs
|
|
377
|
+
? new Date(createdAt.getTime() +
|
|
378
|
+
(i / Math.max(rawMessages.length - 1, 1)) *
|
|
379
|
+
(updatedAt.getTime() - createdAt.getTime()))
|
|
380
|
+
: new Date(),
|
|
381
|
+
}));
|
|
382
|
+
return {
|
|
383
|
+
id,
|
|
384
|
+
provider: this.name,
|
|
385
|
+
title: rawTitle || `Gemini conversation ${id}`,
|
|
386
|
+
messages,
|
|
387
|
+
createdAt,
|
|
388
|
+
updatedAt,
|
|
389
|
+
metadata: {
|
|
390
|
+
messageCount: messages.length,
|
|
391
|
+
characterCount: messages.reduce((sum, m) => sum + m.content.length, 0),
|
|
392
|
+
mediaCount: 0,
|
|
393
|
+
},
|
|
394
|
+
};
|
|
395
|
+
}
|
|
396
|
+
catch (error) {
|
|
397
|
+
this.cachedPage = undefined;
|
|
398
|
+
throw error;
|
|
399
|
+
}
|
|
400
|
+
}
|
|
401
|
+
/**
|
|
402
|
+
* Cleanup browser resources
|
|
403
|
+
*/
|
|
404
|
+
async cleanup() {
|
|
405
|
+
if (this.cachedPage) {
|
|
406
|
+
try {
|
|
407
|
+
await this.cachedPage.close();
|
|
408
|
+
}
|
|
409
|
+
catch {
|
|
410
|
+
// ignore
|
|
411
|
+
}
|
|
412
|
+
this.cachedPage = undefined;
|
|
413
|
+
}
|
|
414
|
+
if (this.scraper) {
|
|
415
|
+
await this.scraper.close();
|
|
416
|
+
this.scraper = undefined;
|
|
417
|
+
}
|
|
418
|
+
}
|
|
419
|
+
}
|
|
420
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/gemini/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAG1C,OAAO,EAAE,mBAAmB,EAAE,aAAa,EAAE,MAAM,yBAAyB,CAAC;AAC7E,OAAO,EAAE,cAAc,EAAE,MAAM,wBAAwB,CAAC;AACxD,OAAO,KAAK,MAAM,OAAO,CAAC;AAE1B,MAAM,OAAO,cAAe,SAAQ,YAAY;IACrC,IAAI,GAAG,QAAiB,CAAC;IACzB,WAAW,GAAG,QAAQ,CAAC;IACvB,oBAAoB,GAAwC,CAAC,SAAS,CAAC,CAAC;IACjF,0DAA0D;IACjD,SAAS,GAAG,EAAE,aAAa,EAAE,CAAC,EAAE,CAAC;IAElC,MAAM,CAAU,mBAAmB,GAAG,EAAE,GAAG,EAAE,GAAG,IAAI,CAAC,CAAC,aAAa;IAEnE,OAAO,CAAkB;IACzB,UAAU,CAAO;IACzB,uFAAuF;IAC/E,mBAAmB,GAAgB,IAAI,CAAC;IAChD,4FAA4F;IACpF,sBAAsB,GAAsD,IAAI,GAAG,EAAE,CAAC;IAE9F,4EAA4E;IACpE,iBAAiB;QACvB,IAAI,CAAC,IAAI,CAAC,mBAAmB;YAAE,OAAO;QACtC,IAAI,IAAI,CAAC,GAAG,EAAE,GAAG,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,CAAC,CAAC,IAAI,CAAC,mBAAmB,CAAC,OAAO,EAAE,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC,GAAG,MAAM,CAAC,CAAC;YACxF,MAAM,IAAI,KAAK,CACb,gEAAgE,SAAS,kBAAkB;gBACzF,UAAU,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,qBAAqB,CAC/E,CAAC;QACJ,CAAC;QACD,kCAAkC;QAClC,IAAI,CAAC,mBAAmB,GAAG,IAAI,CAAC;IAClC,CAAC;IAED,oEAAoE;IAC5D,mBAAmB;QACzB,IAAI,CAAC,mBAAmB,GAAG,IAAI,IAAI,CAAC,IAAI,CAAC,GAAG,EAAE,GAAG,cAAc,CAAC,mBAAmB,CAAC,CAAC;QACrF,OAAO,CAAC,MAAM,CAAC,KAAK,CAClB,uEAAuE;YACrE,GAAG,IAAI,CAAC,mBAAmB,CAAC,kBAAkB,EAAE,kBAAkB,CACrE,CAAC;IACJ,CAAC;IAED;;;OAGG;IACK,KAAK,CAAC,eAAe;QAC3B,MAAM,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QACnC,IAAI,UAAU,EAAE,CAAC;YACf,IAAI,CAAC;gBACH,MAAM,UAAU,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC,IAAI,CAAC,CAAC;gBACtC,OAAO,UAAU,CAAC;YACpB,CAAC;YAAC,MAAM,CAAC;gBACP,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC9B,CAAC;QACH,CAAC;QAED,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAQ,CAAC,UAAU,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,MAAO,CAAC,OAAQ;YAC9B,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC,UAAU,GAAG,IAAI,CAAC;QACvB,OAAO,IAAI,CAAC;IACd,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,YAAY,CAAC,MAAsB;QACvC,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QAErB,IAAI,MAAM,CAAC,UAAU,KAAK,SAAS,EAAE,CAAC;YACpC,MAAM,IAAI,mBAAmB,CAAC,qDAAqD,CAAC,CAAC;QACvF,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,OAAO,EAAE,CAAC;YACpB,MAAM,IAAI,mBAAmB,CAAC,gDAAgD,CAAC,CAAC;QAClF,CAAC;QAED,IAAI,CAAC,OAAO,GAAG,IAAI,cAAc,EAAE,CAAC;QACpC,MAAM,IAAI,CAAC,OAAO,CAAC,IAAI,EAAE,CAAC;QAE1B,OAAO,IAAI,CAAC,eAAe,EAAE,CAAC;IAChC,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,eAAe;QACnB,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,OAAQ,CAAC,UAAU,CAAC;YAC1C,OAAO,EAAE,IAAI,CAAC,MAAO,CAAC,OAAQ;YAC9B,MAAM,EAAE,aAAa;SACtB,CAAC,CAAC;QAEH,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE;gBAC/C,SAAS,EAAE,kBAAkB;gBAC7B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,QAAQ,CAAC,oBAAoB,CAAC,EAAE,CAAC;gBACvC,MAAM,IAAI,mBAAmB,CAC3B,sFAAsF;oBACpF,wFAAwF;oBACxF,4EAA4E,CAC/E,CAAC;YACJ,CAAC;YACD,OAAO,CAAC,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,CAAC;QAC9C,CAAC;gBAAS,CAAC;YACT,MAAM,IAAI,CAAC,KAAK,EAAE,CAAC;QACrB,CAAC;IACH,CAAC;IAED;;;OAGG;IACH,KAAK,CAAC,iBAAiB,CAAC,UAAoC,EAAE;QAC5D,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,+BAA+B,EAAE;gBAC/C,SAAS,EAAE,kBAAkB;gBAC7B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,MAAM,OAAO,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YAC3B,IAAI,OAAO,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACzC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,8DAA8D;oBAC5D,2CAA2C,IAAI,CAAC,mBAAoB,CAAC,kBAAkB,EAAE,IAAI,CAChG,CAAC;YACJ,CAAC;YACD,IAAI,OAAO,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBAC5C,MAAM,IAAI,mBAAmB,CAAC,uDAAuD,CAAC,CAAC;YACzF,CAAC;YAED,mEAAmE;YACnE,MAAM,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,QAAQ,CAAC,GAAG,EAAE;gBAC/C,MAAM,GAAG,GAAI,MAAc,CAAC,eAAe,IAAI,EAAE,CAAC;gBAClD,OAAO;oBACL,GAAG,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;oBAC7B,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,KAAK,IAAI,EAAE,CAAC;oBAC3B,EAAE,EAAE,MAAM,CAAC,GAAG,CAAC,MAAM,IAAI,EAAE,CAAC;iBAC7B,CAAC;YACJ,CAAC,CAAC,CAAC;YAEH,IAAI,CAAC,GAAG,IAAI,CAAC,EAAE,IAAI,CAAC,EAAE,EAAE,CAAC;gBACvB,MAAM,IAAI,KAAK,CACb,qEAAqE;oBACnE,0CAA0C,CAC7C,CAAC;YACJ,CAAC;YAED,sFAAsF;YACtF,MAAM,YAAY,GAAG,CAAC,QAAgB,EAAmB,EAAE,CACzD,IAAI,CAAC,QAAQ,CACX,KAAK,EAAE,EACL,GAAG,EACH,EAAE,EACF,EAAE,EACF,QAAQ,GAMT,EAAE,EAAE;gBACH,MAAM,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,MAAM,CAAC,GAAG,MAAM,CAAC;gBAC1D,MAAM,GAAG,GACP,0DAA0D;oBAC1D,mCAAmC;oBACnC,OAAO,kBAAkB,CAAC,EAAE,CAAC,UAAU,kBAAkB,CAAC,GAAG,CAAC,EAAE;oBAChE,iBAAiB,KAAK,OAAO,CAAC;gBAEhC,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;oBAC5B,MAAM,EAAE,MAAM;oBACd,OAAO,EAAE;wBACP,cAAc,EAAE,iDAAiD;wBACjE,eAAe,EAAE,GAAG;qBACrB;oBACD,IAAI,EAAE,SAAS,kBAAkB,CAAC,QAAQ,CAAC,OAAO,kBAAkB,CAAC,EAAE,CAAC,EAAE;iBAC3E,CAAC,CAAC;gBAEH,IAAI,CAAC,IAAI,CAAC,EAAE;oBAAE,MAAM,IAAI,KAAK,CAAC,qBAAqB,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;gBAClE,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;YACrB,CAAC,EACD,EAAE,GAAG,EAAE,EAAE,EAAE,EAAE,EAAE,QAAQ,EAAE,CAC1B,CAAC;YAEJ,0FAA0F;YAC1F,4DAA4D;YAC5D,MAAM,aAAa,GAAG,CAAC,IAAY,EAA6C,EAAE;gBAChF,MAAM,QAAQ,GAAG,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC;gBACrD,IAAI,QAAQ,KAAK,CAAC,CAAC;oBAAE,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBAExD,8EAA8E;gBAC9E,IAAI,KAAK,GAAG,CAAC,CAAC;gBACd,IAAI,QAAQ,GAAG,KAAK,CAAC;gBACrB,IAAI,OAAO,GAAG,KAAK,CAAC;gBACpB,IAAI,MAAM,GAAG,QAAQ,CAAC;gBACtB,KAAK,IAAI,CAAC,GAAG,QAAQ,EAAE,CAAC,GAAG,IAAI,CAAC,MAAM,EAAE,CAAC,EAAE,EAAE,CAAC;oBAC5C,MAAM,EAAE,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC;oBACnB,IAAI,OAAO,EAAE,CAAC;wBACZ,OAAO,GAAG,KAAK,CAAC;wBAChB,SAAS;oBACX,CAAC;oBACD,IAAI,EAAE,KAAK,IAAI,IAAI,QAAQ,EAAE,CAAC;wBAC5B,OAAO,GAAG,IAAI,CAAC;wBACf,SAAS;oBACX,CAAC;oBACD,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;wBACf,QAAQ,GAAG,CAAC,QAAQ,CAAC;wBACrB,SAAS;oBACX,CAAC;oBACD,IAAI,QAAQ;wBAAE,SAAS;oBACvB,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG;wBAAE,KAAK,EAAE,CAAC;yBACjC,IAAI,EAAE,KAAK,GAAG,IAAI,EAAE,KAAK,GAAG,EAAE,CAAC;wBAClC,IAAI,EAAE,KAAK,KAAK,CAAC,EAAE,CAAC;4BAClB,MAAM,GAAG,CAAC,CAAC;4BACX,MAAM;wBACR,CAAC;oBACH,CAAC;gBACH,CAAC;gBAED,IAAI,KAAY,CAAC;gBACjB,IAAI,CAAC;oBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,IAAI,CAAC,SAAS,CAAC,QAAQ,EAAE,MAAM,GAAG,CAAC,CAAC,CAAC,CAAC;gBAC3D,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACrC,CAAC;gBAED,wDAAwD;gBACxD,MAAM,KAAK,GAAG,KAAK,CAAC,CAAC,CAAC,CAAC;gBACvB,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,IAAI,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,IAAI,OAAO,KAAK,CAAC,CAAC,CAAC,KAAK,QAAQ,EAAE,CAAC;oBACnF,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACrC,CAAC;gBAED,IAAI,KAAU,CAAC;gBACf,IAAI,CAAC;oBACH,KAAK,GAAG,IAAI,CAAC,KAAK,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC;gBAC/B,CAAC;gBAAC,MAAM,CAAC;oBACP,OAAO,EAAE,MAAM,EAAE,IAAI,EAAE,KAAK,EAAE,EAAE,EAAE,CAAC;gBACrC,CAAC;gBAED,2DAA2D;gBAC3D,OAAO;oBACL,MAAM,EAAE,KAAK,CAAC,CAAC,CAAC,IAAI,IAAI;oBACxB,KAAK,EAAE,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,EAAE;iBAC/C,CAAC;YACJ,CAAC,CAAC;YAEF,MAAM,SAAS,GAAG,CAAC,IAAW,EAA8B,EAAE;gBAC5D,yEAAyE;gBACzE,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;gBACpC,MAAM,EAAE,GAAG,KAAK,CAAC,OAAO,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACpC,IAAI,CAAC,EAAE;oBAAE,OAAO,IAAI,CAAC;gBACrB,MAAM,KAAK,GAAG,MAAM,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,CAAC,IAAI,EAAE,IAAI,UAAU,CAAC;gBACjE,MAAM,MAAM,GAAG,KAAK,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;gBACvD,MAAM,IAAI,GAAG,MAAM,CAAC,CAAC,CAAC,IAAI,IAAI,CAAC,MAAM,CAAC,MAAM,CAAC,CAAC,CAAC,CAAC,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,IAAI,EAAE,CAAC;gBACtE,OAAO,EAAE,EAAE,EAAE,KAAK,EAAE,YAAY,EAAE,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,SAAS,EAAE,IAAI,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YAC3F,CAAC,CAAC;YAEF,MAAM,YAAY,GAA0B,EAAE,CAAC;YAE/C,qDAAqD;YACrD,IAAI,CAAC;gBACH,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC;oBAC1B,CAAC,CAAC,QAAQ,EAAE,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC;iBACxE,CAAC,CAAC;gBACH,MAAM,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBAC1D,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC1B,IAAI,CAAC;wBAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC;YACH,CAAC;YAAC,MAAM,CAAC;gBACP,mEAAmE;YACrE,CAAC;YAED,6EAA6E;YAC7E,MAAM,SAAS,GAAG,GAAG,CAAC;YACtB,IAAI,MAAM,GAAkB,IAAI,CAAC;YACjC,IAAI,SAAS,GAAG,CAAC,CAAC;YAClB,OAAO,IAAI,EAAE,CAAC;gBACZ,IAAI,EAAE,SAAS,GAAG,SAAS,EAAE,CAAC;oBAC5B,OAAO,CAAC,GAAG,CACT,KAAK,CAAC,MAAM,CAAC,uBAAuB,SAAS,8BAA8B,CAAC,CAC7E,CAAC;oBACF,MAAM;gBACR,CAAC;gBACD,MAAM,QAAQ,GACZ,MAAM,KAAK,IAAI;oBACb,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC;oBAC1C,CAAC,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,EAAE,EAAE,MAAM,EAAE,CAAC,CAAC,EAAE,IAAI,EAAE,CAAC,CAAC,CAAC,CAAC,CAAC;gBAEjD,MAAM,IAAI,GAAG,IAAI,CAAC,SAAS,CAAC,CAAC,CAAC,CAAC,QAAQ,EAAE,QAAQ,EAAE,IAAI,EAAE,SAAS,CAAC,CAAC,CAAC,CAAC,CAAC;gBACvE,MAAM,EAAE,MAAM,EAAE,UAAU,EAAE,KAAK,EAAE,GAAG,aAAa,CAAC,MAAM,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC;gBAE9E,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;oBACzB,MAAM,CAAC,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;oBAC1B,IAAI,CAAC;wBAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAC9B,CAAC;gBAED,IAAI,CAAC,UAAU,IAAI,UAAU,KAAK,MAAM;oBAAE,MAAM;gBAChD,MAAM,GAAG,UAAU,CAAC;YACtB,CAAC;YAED,wEAAwE;YACxE,MAAM,UAAU,GAAG,IAAI,GAAG,EAA+B,CAAC;YAC1D,KAAK,MAAM,CAAC,IAAI,YAAY,EAAE,CAAC;gBAC7B,IAAI,CAAC,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC;oBAAE,UAAU,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC;YACrD,CAAC;YAED,gDAAgD;YAChD,KAAK,MAAM,CAAC,IAAI,UAAU,CAAC,MAAM,EAAE,EAAE,CAAC;gBACpC,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,SAAS,EAAE,CAAC,CAAC,SAAS,EAAE,CAAC,CAAC;YAC5F,CAAC;YAED,IAAI,SAAS,GAAG,KAAK,CAAC,IAAI,CAAC,UAAU,CAAC,MAAM,EAAE,CAAC,CAAC;YAChD,IAAI,OAAO,CAAC,KAAK;gBAAE,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,KAAM,CAAC,CAAC;YACtF,IAAI,OAAO,CAAC,KAAK;gBAAE,SAAS,GAAG,SAAS,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,SAAS,IAAI,OAAO,CAAC,KAAM,CAAC,CAAC;YACtF,IAAI,OAAO,CAAC,KAAK;gBAAE,SAAS,GAAG,SAAS,CAAC,KAAK,CAAC,CAAC,EAAE,OAAO,CAAC,KAAK,CAAC,CAAC;YAEjE,OAAO,SAAS,CAAC;QACnB,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,iBAAiB,CAAC,EAAU;QAChC,IAAI,CAAC,WAAW,EAAE,CAAC;QACnB,IAAI,CAAC,iBAAiB,EAAE,CAAC;QAEzB,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,eAAe,EAAE,CAAC;QAE1C,IAAI,CAAC;YACH,MAAM,IAAI,CAAC,IAAI,CAAC,iCAAiC,EAAE,EAAE,EAAE;gBACrD,SAAS,EAAE,kBAAkB;gBAC7B,OAAO,EAAE,KAAK;aACf,CAAC,CAAC;YAEH,yDAAyD;YACzD,MAAM,IAAI,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;YAEhC,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,EAAE,CAAC;YACvB,IAAI,GAAG,CAAC,QAAQ,CAAC,qBAAqB,CAAC,EAAE,CAAC;gBACxC,MAAM,IAAI,mBAAmB,CAAC,uDAAuD,CAAC,CAAC;YACzF,CAAC;YACD,IAAI,GAAG,CAAC,QAAQ,CAAC,kBAAkB,CAAC,EAAE,CAAC;gBACrC,IAAI,CAAC,mBAAmB,EAAE,CAAC;gBAC3B,MAAM,IAAI,KAAK,CACb,kCAAkC;oBAChC,2CAA2C,IAAI,CAAC,mBAAoB,CAAC,kBAAkB,EAAE,IAAI,CAChG,CAAC;YACJ,CAAC;YAED,4DAA4D;YAC5D,IAAI,CAAC,GAAG,CAAC,QAAQ,CAAC,QAAQ,EAAE,EAAE,CAAC,EAAE,CAAC;gBAChC,MAAM,IAAI,aAAa,CAAC,iBAAiB,EAAE,aAAa,CAAC,CAAC;YAC5D,CAAC;YAED,0FAA0F;YAC1F,MAAM,IAAI,CAAC,eAAe,CACxB,6EAA6E,EAC7E,EAAE,KAAK,EAAE,UAAU,EAAE,OAAO,EAAE,KAAK,EAAE,CACtC,CAAC;YAEF,oFAAoF;YACpF,MAAM,WAAW,GAAG,IAAI,CAAC,QAAQ,CAC/B,CAAC,EAAE,MAAM,EAAsB,EAAE,EAAE;gBACjC,8DAA8D;gBAC9D,MAAM,QAAQ,GAAuD;oBACnE,GAAG,KAAK,CAAC,IAAI,CACX,QAAQ,CAAC,gBAAgB,CAAC,uDAAuD,CAAC,CACnF,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,MAAe,EAAE,CAAC,CAAC;oBAC9C,GAAG,KAAK,CAAC,IAAI,CACX,QAAQ,CAAC,gBAAgB,CAAC,2DAA2D,CAAC,CACvF,CAAC,GAAG,CAAC,CAAC,EAAE,EAAE,EAAE,CAAC,CAAC,EAAE,EAAE,EAAE,IAAI,EAAE,WAAoB,EAAE,CAAC,CAAC;iBACpD,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CACd,CAAC,CAAC,EAAE,CAAC,uBAAuB,CAAC,CAAC,CAAC,EAAE,CAAC,GAAG,IAAI,CAAC,2BAA2B,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAC/E,CAAC;gBAEF,MAAM,QAAQ,GAAG,QAAQ;qBACtB,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE;oBACZ,MAAM,OAAO,GAAG,CAAC,CAAC,EAAE,CAAC,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;oBAC/C,OAAO,OAAO,CAAC,CAAC,CAAC,EAAE,EAAE,EAAE,GAAG,MAAM,IAAI,CAAC,EAAE,EAAE,IAAI,EAAE,CAAC,CAAC,IAAI,EAAE,OAAO,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;gBAC1E,CAAC,CAAC;qBACD,MAAM,CAAC,OAAO,CAAuE,CAAC;gBAEzF,sEAAsE;gBACtE,MAAM,cAAc,GAAG,CAAC,CAAS,EAAE,EAAE,CACnC,uBAAuB,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,UAAU,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;gBAExD,IAAI,KAAK,GAAG,QAAQ,CAAC,KAAK,EAAE,OAAO,CAAC,sBAAsB,EAAE,EAAE,CAAC,CAAC,IAAI,EAAE,IAAI,EAAE,CAAC;gBAC7E,IAAI,cAAc,CAAC,KAAK,CAAC;oBAAE,KAAK,GAAG,EAAE,CAAC;gBACtC,IAAI,CAAC,KAAK,EAAE,CAAC;oBACX,KAAK,GAAG,QAAQ,CAAC,aAAa,CAAC,IAAI,CAAC,EAAE,WAAW,EAAE,IAAI,EAAE,IAAI,EAAE,CAAC;gBAClE,CAAC;gBACD,IAAI,CAAC,KAAK,IAAI,cAAc,CAAC,KAAK,CAAC,EAAE,CAAC;oBACpC,KAAK,GAAG,uBAAuB,MAAM,EAAE,CAAC;gBAC1C,CAAC;gBAED,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,CAAC;YAC7B,CAAC,EACD,EAAE,MAAM,EAAE,EAAE,EAAE,CACf,CAAC;YACF,IAAI,iBAAgD,CAAC;YACrD,MAAM,WAAW,GAAG,IAAI,OAAO,CAAQ,CAAC,CAAC,EAAE,MAAM,EAAE,EAAE;gBACnD,iBAAiB,GAAG,UAAU,CAC5B,GAAG,EAAE,CAAC,MAAM,CAAC,IAAI,KAAK,CAAC,iDAAiD,EAAE,EAAE,CAAC,CAAC,EAC9E,MAAM,CACP,CAAC;YACJ,CAAC,CAAC,CAAC;YACH,IAAI,WAAgB,EAAE,QAAa,CAAC;YACpC,IAAI,CAAC;gBACH,CAAC,EAAE,QAAQ,EAAE,WAAW,EAAE,KAAK,EAAE,QAAQ,EAAE,GAAG,MAAM,OAAO,CAAC,IAAI,CAAC;oBAC/D,WAAW;oBACX,WAAW;iBACZ,CAAC,CAAC,CAAC;YACN,CAAC;oBAAS,CAAC;gBACT,YAAY,CAAC,iBAAkB,CAAC,CAAC;YACnC,CAAC;YAED,2FAA2F;YAC3F,MAAM,QAAQ,GAAG,IAAI,CAAC,sBAAsB,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;YACrD,MAAM,SAAS,GAAG,QAAQ,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;YACpD,MAAM,SAAS,GAAG,QAAQ,EAAE,SAAS,IAAI,IAAI,IAAI,EAAE,CAAC;YAEpD,MAAM,QAAQ,GACZ,WACD,CAAC,GAAG,CAAC,CAAC,CAAC,EAAE,CAAC,EAAE,EAAE,CAAC,CAAC;gBACf,EAAE,EAAE,CAAC,CAAC,EAAE;gBACR,IAAI,EAAE,CAAC,CAAC,IAAI;gBACZ,OAAO,EAAE,CAAC,CAAC,OAAO;gBAClB,wFAAwF;gBACxF,SAAS,EAAE,QAAQ;oBACjB,CAAC,CAAC,IAAI,IAAI,CACN,SAAS,CAAC,OAAO,EAAE;wBACjB,CAAC,CAAC,GAAG,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC,MAAM,GAAG,CAAC,EAAE,CAAC,CAAC,CAAC;4BACvC,CAAC,SAAS,CAAC,OAAO,EAAE,GAAG,SAAS,CAAC,OAAO,EAAE,CAAC,CAChD;oBACH,CAAC,CAAC,IAAI,IAAI,EAAE;aACf,CAAC,CAAC,CAAC;YAEJ,OAAO;gBACL,EAAE;gBACF,QAAQ,EAAE,IAAI,CAAC,IAAI;gBACnB,KAAK,EAAE,QAAQ,IAAI,uBAAuB,EAAE,EAAE;gBAC9C,QAAQ;gBACR,SAAS;gBACT,SAAS;gBACT,QAAQ,EAAE;oBACR,YAAY,EAAE,QAAQ,CAAC,MAAM;oBAC7B,cAAc,EAAE,QAAQ,CAAC,MAAM,CAAC,CAAC,GAAG,EAAE,CAAC,EAAE,EAAE,CAAC,GAAG,GAAG,CAAC,CAAC,OAAO,CAAC,MAAM,EAAE,CAAC,CAAC;oBACtE,UAAU,EAAE,CAAC;iBACd;aACF,CAAC;QACJ,CAAC;QAAC,OAAO,KAAK,EAAE,CAAC;YACf,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;YAC5B,MAAM,KAAK,CAAC;QACd,CAAC;IACH,CAAC;IAED;;OAEG;IACH,KAAK,CAAC,OAAO;QACX,IAAI,IAAI,CAAC,UAAU,EAAE,CAAC;YACpB,IAAI,CAAC;gBACH,MAAM,IAAI,CAAC,UAAU,CAAC,KAAK,EAAE,CAAC;YAChC,CAAC;YAAC,MAAM,CAAC;gBACP,SAAS;YACX,CAAC;YACD,IAAI,CAAC,UAAU,GAAG,SAAS,CAAC;QAC9B,CAAC;QACD,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;YACjB,MAAM,IAAI,CAAC,OAAO,CAAC,KAAK,EAAE,CAAC;YAC3B,IAAI,CAAC,OAAO,GAAG,SAAS,CAAC;QAC3B,CAAC;IACH,CAAC"}
|
|
@@ -5,6 +5,7 @@ import { GrokWebProvider } from './grok-web/index.js';
|
|
|
5
5
|
import { GrokXProvider } from './grok-x/index.js';
|
|
6
6
|
import { ChatGPTProvider } from './chatgpt/index.js';
|
|
7
7
|
import { ClaudeProvider } from './claude/index.js';
|
|
8
|
+
import { GeminiProvider } from './gemini/index.js';
|
|
8
9
|
import type { Provider } from '../types/provider.js';
|
|
9
10
|
import type { ProviderName } from '../types/index.js';
|
|
10
11
|
export declare const providers: Record<string, new () => Provider>;
|
|
@@ -20,5 +21,5 @@ export declare function getAvailableProviders(): ProviderName[];
|
|
|
20
21
|
* Check if a provider is available
|
|
21
22
|
*/
|
|
22
23
|
export declare function isProviderAvailable(name: string): boolean;
|
|
23
|
-
export { GrokWebProvider, GrokXProvider, ChatGPTProvider, ClaudeProvider };
|
|
24
|
+
export { GrokWebProvider, GrokXProvider, ChatGPTProvider, ClaudeProvider, GeminiProvider };
|
|
24
25
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,QAAQ,CAMxD,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAUxD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,YAAY,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AACrD,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAGtD,eAAO,MAAM,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,QAAQ,CAMxD,CAAC;AAEF;;GAEG;AACH,wBAAgB,WAAW,CAAC,IAAI,EAAE,YAAY,GAAG,QAAQ,CAUxD;AAED;;GAEG;AACH,wBAAgB,qBAAqB,IAAI,YAAY,EAAE,CAEtD;AAED;;GAEG;AACH,wBAAgB,mBAAmB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAEzD;AAED,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/providers/index.js
CHANGED
|
@@ -5,13 +5,14 @@ import { GrokWebProvider } from './grok-web/index.js';
|
|
|
5
5
|
import { GrokXProvider } from './grok-x/index.js';
|
|
6
6
|
import { ChatGPTProvider } from './chatgpt/index.js';
|
|
7
7
|
import { ClaudeProvider } from './claude/index.js';
|
|
8
|
+
import { GeminiProvider } from './gemini/index.js';
|
|
8
9
|
// Provider registry
|
|
9
10
|
export const providers = {
|
|
10
11
|
'grok-web': GrokWebProvider,
|
|
11
12
|
'grok-x': GrokXProvider,
|
|
12
13
|
chatgpt: ChatGPTProvider,
|
|
13
14
|
claude: ClaudeProvider,
|
|
14
|
-
|
|
15
|
+
gemini: GeminiProvider,
|
|
15
16
|
};
|
|
16
17
|
/**
|
|
17
18
|
* Get a provider instance by name
|
|
@@ -35,5 +36,5 @@ export function getAvailableProviders() {
|
|
|
35
36
|
export function isProviderAvailable(name) {
|
|
36
37
|
return name in providers;
|
|
37
38
|
}
|
|
38
|
-
export { GrokWebProvider, GrokXProvider, ChatGPTProvider, ClaudeProvider };
|
|
39
|
+
export { GrokWebProvider, GrokXProvider, ChatGPTProvider, ClaudeProvider, GeminiProvider };
|
|
39
40
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,oBAAoB;AACpB,MAAM,CAAC,MAAM,SAAS,GAAuC;IAC3D,UAAU,EAAE,eAAe;IAC3B,QAAQ,EAAE,aAAa;IACvB,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;IACtB,
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/providers/index.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,OAAO,EAAE,eAAe,EAAE,MAAM,qBAAqB,CAAC;AACtD,OAAO,EAAE,aAAa,EAAE,MAAM,mBAAmB,CAAC;AAClD,OAAO,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AACrD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AAInD,oBAAoB;AACpB,MAAM,CAAC,MAAM,SAAS,GAAuC;IAC3D,UAAU,EAAE,eAAe;IAC3B,QAAQ,EAAE,aAAa;IACvB,OAAO,EAAE,eAAe;IACxB,MAAM,EAAE,cAAc;IACtB,MAAM,EAAE,cAAc;CACvB,CAAC;AAEF;;GAEG;AACH,MAAM,UAAU,WAAW,CAAC,IAAkB;IAC5C,MAAM,aAAa,GAAG,SAAS,CAAC,IAAI,CAAC,CAAC;IAEtC,IAAI,CAAC,aAAa,EAAE,CAAC;QACnB,MAAM,IAAI,KAAK,CACb,aAAa,IAAI,qCAAqC,MAAM,CAAC,IAAI,CAAC,SAAS,CAAC,CAAC,IAAI,CAAC,IAAI,CAAC,EAAE,CAC1F,CAAC;IACJ,CAAC;IAED,OAAO,IAAI,aAAa,EAAE,CAAC;AAC7B,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,qBAAqB;IACnC,OAAO,MAAM,CAAC,IAAI,CAAC,SAAS,CAAmB,CAAC;AAClD,CAAC;AAED;;GAEG;AACH,MAAM,UAAU,mBAAmB,CAAC,IAAY;IAC9C,OAAO,IAAI,IAAI,SAAS,CAAC;AAC3B,CAAC;AAED,OAAO,EAAE,eAAe,EAAE,aAAa,EAAE,eAAe,EAAE,cAAc,EAAE,cAAc,EAAE,CAAC"}
|
package/dist/types/storage.d.ts
CHANGED
|
@@ -25,6 +25,10 @@ export interface ArchiveOptions {
|
|
|
25
25
|
downloadMedia?: boolean;
|
|
26
26
|
/** Skip already archived conversations */
|
|
27
27
|
skipExisting?: boolean;
|
|
28
|
+
/** Only download conversations not yet in local archive */
|
|
29
|
+
onlyNew?: boolean;
|
|
30
|
+
/** Add a random delay (1–30s) between fetching each conversation */
|
|
31
|
+
randomDelay?: boolean;
|
|
28
32
|
/** Dry run (don't actually save anything) */
|
|
29
33
|
dryRun?: boolean;
|
|
30
34
|
/** Maximum number of conversations to archive */
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/types/storage.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"storage.d.ts","sourceRoot":"","sources":["../../src/types/storage.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,aAAa;IAC5B,2CAA2C;IAC3C,OAAO,EAAE,MAAM,CAAC;IAEhB,iCAAiC;IACjC,OAAO,EAAE,YAAY,EAAE,CAAC;IAExB,kCAAkC;IAClC,cAAc,CAAC,EAAE,OAAO,CAAC;IAEzB,sCAAsC;IACtC,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,UAAU,CAAC;AAE/C,MAAM,WAAW,cAAc;IAC7B,+BAA+B;IAC/B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAElB,mEAAmE;IACnE,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAE3B,iDAAiD;IACjD,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,iDAAiD;IACjD,KAAK,CAAC,EAAE,IAAI,CAAC;IAEb,iCAAiC;IACjC,aAAa,CAAC,EAAE,OAAO,CAAC;IAExB,0CAA0C;IAC1C,YAAY,CAAC,EAAE,OAAO,CAAC;IAEvB,2DAA2D;IAC3D,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB,oEAAoE;IACpE,WAAW,CAAC,EAAE,OAAO,CAAC;IAEtB,6CAA6C;IAC7C,MAAM,CAAC,EAAE,OAAO,CAAC;IAEjB,iDAAiD;IACjD,KAAK,CAAC,EAAE,MAAM,CAAC;IAEf,uEAAuE;IACvE,WAAW,CAAC,EAAE,MAAM,CAAC;IAErB,0EAA0E;IAC1E,WAAW,CAAC,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,aAAa;IAC5B,uCAAuC;IACvC,qBAAqB,EAAE,MAAM,CAAC;IAE9B,sDAAsD;IACtD,oBAAoB,EAAE,MAAM,CAAC;IAE7B,uCAAuC;IACvC,eAAe,EAAE,MAAM,CAAC;IAExB,oDAAoD;IACpD,YAAY,EAAE,MAAM,CAAC;IAErB,6BAA6B;IAC7B,eAAe,EAAE,MAAM,CAAC;IAExB,gCAAgC;IAChC,cAAc,CAAC,EAAE,MAAM,CAAC;IAExB,oCAAoC;IACpC,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAE5B,4BAA4B;IAC5B,QAAQ,EAAE,MAAM,CAAC;IAEjB,6BAA6B;IAC7B,MAAM,EAAE,YAAY,EAAE,CAAC;CACxB;AAED,MAAM,WAAW,YAAY;IAC3B,+BAA+B;IAC/B,EAAE,EAAE,MAAM,CAAC;IAEX,iBAAiB;IACjB,IAAI,EAAE,cAAc,GAAG,OAAO,CAAC;IAE/B,oBAAoB;IACpB,OAAO,EAAE,MAAM,CAAC;IAEhB,qBAAqB;IACrB,KAAK,CAAC,EAAE,KAAK,CAAC;CACf;AAED,MAAM,WAAW,aAAa;IAC5B,sCAAsC;IACtC,CAAC,IAAI,EAAE,MAAM,GAAG;QACd,IAAI,EAAE,MAAM,CAAC;QACb,IAAI,EAAE,MAAM,CAAC;QACb,QAAQ,EAAE,MAAM,CAAC;QACjB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,EAAE,CAAC;KACtB,CAAC;CACH;AAED,MAAM,WAAW,iBAAiB;IAChC,iCAAiC;IACjC,CAAC,EAAE,EAAE,MAAM,GAAG;QACZ,KAAK,EAAE,MAAM,CAAC;QACd,QAAQ,EAAE,MAAM,CAAC;QACjB,YAAY,EAAE,MAAM,CAAC;QACrB,SAAS,EAAE,MAAM,CAAC;QAClB,SAAS,EAAE,MAAM,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,QAAQ,EAAE,OAAO,CAAC;QAClB,UAAU,EAAE,MAAM,CAAC;QACnB,IAAI,EAAE,MAAM,CAAC;QAEb,WAAW,CAAC,EAAE,MAAM,CAAC;QAErB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,aAAa,CAAC,EAAE,MAAM,CAAC;QACvB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,MAAM,CAAC,EAAE,MAAM,CAAC;KACjB,CAAC;CACH;AAED,MAAM,WAAW,cAAc;IAC7B,gDAAgD;IAChD,UAAU,EAAE;QACV,CAAC,WAAW,EAAE,MAAM,GAAG;YACrB,IAAI,EAAE,MAAM,CAAC;YACb,eAAe,EAAE,MAAM,EAAE,CAAC;YAC1B,QAAQ,EAAE;gBACR,CAAC,SAAS,EAAE,MAAM,GAAG;oBACnB,IAAI,EAAE,MAAM,CAAC;oBACb,eAAe,EAAE,MAAM,EAAE,CAAC;iBAC3B,CAAC;aACH,CAAC;SACH,CAAC;KACH,CAAC;IACF,8CAA8C;IAC9C,WAAW,EAAE,MAAM,EAAE,CAAC;CACvB"}
|
|
@@ -91,7 +91,7 @@ describe('Scheduler', () => {
|
|
|
91
91
|
// Should include full path, not just "ai-vault"
|
|
92
92
|
expect(command).toContain('/opt/homebrew/bin/ai-vault');
|
|
93
93
|
expect(command).toContain('backup');
|
|
94
|
-
expect(command).toContain('
|
|
94
|
+
expect(command).toContain('"grok-web"');
|
|
95
95
|
});
|
|
96
96
|
it('should include skip-media flag when downloadMedia is false', () => {
|
|
97
97
|
const schedule = {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"scheduler.spec.js","sourceRoot":"","sources":["../../src/utils/scheduler.spec.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"scheduler.spec.js","sourceRoot":"","sources":["../../src/utils/scheduler.spec.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "ai-vault",
|
|
3
|
-
"version": "3.
|
|
3
|
+
"version": "3.5.0",
|
|
4
4
|
"description": "Own your data. Open-source CLI tool for comprehensive backup of AI interactions—conversations, images, videos, code artifacts, and metadata—across ChatGPT, Claude, Grok, Gemini, and more.",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"type": "module",
|