ai-vault 3.3.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.
Files changed (97) hide show
  1. package/README.md +84 -74
  2. package/dist/cli.js +17 -0
  3. package/dist/cli.js.map +1 -1
  4. package/dist/commands/archive.d.ts +2 -0
  5. package/dist/commands/archive.d.ts.map +1 -1
  6. package/dist/commands/archive.js +80 -46
  7. package/dist/commands/archive.js.map +1 -1
  8. package/dist/commands/import.d.ts.map +1 -1
  9. package/dist/commands/import.js +29 -27
  10. package/dist/commands/import.js.map +1 -1
  11. package/dist/commands/schedule.d.ts.map +1 -1
  12. package/dist/commands/schedule.js +17 -6
  13. package/dist/commands/schedule.js.map +1 -1
  14. package/dist/commands/setup.d.ts.map +1 -1
  15. package/dist/commands/setup.js +295 -95
  16. package/dist/commands/setup.js.map +1 -1
  17. package/dist/commands/status.d.ts.map +1 -1
  18. package/dist/commands/status.js +2 -6
  19. package/dist/commands/status.js.map +1 -1
  20. package/dist/commands/verify.d.ts +14 -0
  21. package/dist/commands/verify.d.ts.map +1 -0
  22. package/dist/commands/verify.js +293 -0
  23. package/dist/commands/verify.js.map +1 -0
  24. package/dist/core/archiver.d.ts +10 -0
  25. package/dist/core/archiver.d.ts.map +1 -1
  26. package/dist/core/archiver.js +74 -4
  27. package/dist/core/archiver.js.map +1 -1
  28. package/dist/core/archiver.spec.js +2 -0
  29. package/dist/core/archiver.spec.js.map +1 -1
  30. package/dist/core/media.d.ts +5 -0
  31. package/dist/core/media.d.ts.map +1 -1
  32. package/dist/core/media.js +6 -0
  33. package/dist/core/media.js.map +1 -1
  34. package/dist/core/storage.d.ts +4 -0
  35. package/dist/core/storage.d.ts.map +1 -1
  36. package/dist/core/storage.js +10 -0
  37. package/dist/core/storage.js.map +1 -1
  38. package/dist/providers/chatgpt/api-provider.d.ts.map +1 -1
  39. package/dist/providers/chatgpt/api-provider.js +8 -82
  40. package/dist/providers/chatgpt/api-provider.js.map +1 -1
  41. package/dist/providers/chatgpt/attachments.d.ts +12 -0
  42. package/dist/providers/chatgpt/attachments.d.ts.map +1 -0
  43. package/dist/providers/chatgpt/attachments.js +124 -0
  44. package/dist/providers/chatgpt/attachments.js.map +1 -0
  45. package/dist/providers/chatgpt/index.d.ts.map +1 -1
  46. package/dist/providers/chatgpt/index.js +8 -129
  47. package/dist/providers/chatgpt/index.js.map +1 -1
  48. package/dist/providers/claude/api-provider.d.ts.map +1 -1
  49. package/dist/providers/claude/api-provider.js +22 -92
  50. package/dist/providers/claude/api-provider.js.map +1 -1
  51. package/dist/providers/claude/errors.d.ts +16 -0
  52. package/dist/providers/claude/errors.d.ts.map +1 -0
  53. package/dist/providers/claude/errors.js +38 -0
  54. package/dist/providers/claude/errors.js.map +1 -0
  55. package/dist/providers/claude/index.d.ts +4 -7
  56. package/dist/providers/claude/index.d.ts.map +1 -1
  57. package/dist/providers/claude/index.js +123 -191
  58. package/dist/providers/claude/index.js.map +1 -1
  59. package/dist/providers/claude/message-parser.d.ts +3 -0
  60. package/dist/providers/claude/message-parser.d.ts.map +1 -0
  61. package/dist/providers/claude/message-parser.js +95 -0
  62. package/dist/providers/claude/message-parser.js.map +1 -0
  63. package/dist/providers/gemini/index.d.ts +56 -0
  64. package/dist/providers/gemini/index.d.ts.map +1 -0
  65. package/dist/providers/gemini/index.js +420 -0
  66. package/dist/providers/gemini/index.js.map +1 -0
  67. package/dist/providers/index.d.ts +2 -1
  68. package/dist/providers/index.d.ts.map +1 -1
  69. package/dist/providers/index.js +3 -2
  70. package/dist/providers/index.js.map +1 -1
  71. package/dist/types/provider.d.ts +4 -0
  72. package/dist/types/provider.d.ts.map +1 -1
  73. package/dist/types/provider.js +8 -0
  74. package/dist/types/provider.js.map +1 -1
  75. package/dist/types/schemas.d.ts +6 -6
  76. package/dist/types/storage.d.ts +4 -0
  77. package/dist/types/storage.d.ts.map +1 -1
  78. package/dist/utils/archive-dir.d.ts +5 -0
  79. package/dist/utils/archive-dir.d.ts.map +1 -0
  80. package/dist/utils/archive-dir.js +15 -0
  81. package/dist/utils/archive-dir.js.map +1 -0
  82. package/dist/utils/cli-ui.d.ts +41 -0
  83. package/dist/utils/cli-ui.d.ts.map +1 -0
  84. package/dist/utils/cli-ui.js +145 -0
  85. package/dist/utils/cli-ui.js.map +1 -0
  86. package/dist/utils/interactive.d.ts +5 -0
  87. package/dist/utils/interactive.d.ts.map +1 -0
  88. package/dist/utils/interactive.js +13 -0
  89. package/dist/utils/interactive.js.map +1 -0
  90. package/dist/utils/scheduler.d.ts.map +1 -1
  91. package/dist/utils/scheduler.js +1 -6
  92. package/dist/utils/scheduler.js.map +1 -1
  93. package/dist/utils/scheduler.spec.js +1 -1
  94. package/dist/utils/scheduler.spec.js.map +1 -1
  95. package/dist/utils/scraper.js +1 -1
  96. package/dist/utils/scraper.js.map +1 -1
  97. package/package.json +1 -1
@@ -13,6 +13,8 @@
13
13
  import { BaseProvider } from '../base.js';
14
14
  import { AuthenticationError } from '../../types/provider.js';
15
15
  import { BrowserScraper } from '../../utils/scraper.js';
16
+ import { parseClaudeMessages } from './message-parser.js';
17
+ import { createClaudeApiError } from './errors.js';
16
18
  export class ClaudeProvider extends BaseProvider {
17
19
  name = 'claude';
18
20
  displayName = 'Claude';
@@ -27,11 +29,12 @@ export class ClaudeProvider extends BaseProvider {
27
29
  * This avoids creating a new page for every operation
28
30
  */
29
31
  async getOrCreatePage() {
30
- if (this.cachedPage) {
32
+ const cachedPage = this.cachedPage;
33
+ if (cachedPage) {
31
34
  try {
32
35
  // Check if page is still valid
33
- await this.cachedPage.evaluate(() => true);
34
- return this.cachedPage;
36
+ await cachedPage.evaluate(() => true);
37
+ return cachedPage;
35
38
  }
36
39
  catch {
37
40
  // Page is stale, create a new one
@@ -114,41 +117,6 @@ export class ClaudeProvider extends BaseProvider {
114
117
  throw error;
115
118
  }
116
119
  }
117
- /**
118
- * Fetch a single page of conversations from the API
119
- * Returns minimal data to avoid string overflow in page.evaluate()
120
- */
121
- async fetchConversationPage(page, pageNum, limit) {
122
- const url = `https://claude.ai/api/organizations/${this.organizationId}/chat_conversations?limit=${limit}&page=${pageNum}`;
123
- const result = await page.evaluate(async ({ url }) => {
124
- const res = await fetch(url, {
125
- method: 'GET',
126
- credentials: 'include',
127
- });
128
- if (!res.ok) {
129
- return { items: [], hasMore: false, error: res.status };
130
- }
131
- const data = await res.json();
132
- const conversations = Array.isArray(data) ? data : [];
133
- // Return only minimal fields to avoid large data transfer
134
- const minimalItems = conversations.map((conv) => ({
135
- uuid: conv.uuid,
136
- name: conv.name || 'Untitled',
137
- created_at: conv.created_at,
138
- updated_at: conv.updated_at,
139
- summary: conv.summary,
140
- project_uuid: conv.project_uuid,
141
- }));
142
- return {
143
- items: minimalItems,
144
- hasMore: conversations.length === 100, // API limit
145
- };
146
- }, { url });
147
- if (result.error && pageNum === 1) {
148
- throw new Error(`API request failed: ${result.error}`);
149
- }
150
- return result;
151
- }
152
120
  /**
153
121
  * Fetch projects for the organization
154
122
  */
@@ -170,8 +138,10 @@ export class ClaudeProvider extends BaseProvider {
170
138
  }
171
139
  }
172
140
  /**
173
- * List conversations from Claude API with pagination
174
- * Pagination is done outside page.evaluate() to avoid string overflow
141
+ * List all conversations by scraping the /recents page.
142
+ * Clicks "Show more" / "Load more" until the button disappears,
143
+ * then extracts conversation links from the DOM.
144
+ * This overcomes the API pagination bug that caps results at 100.
175
145
  */
176
146
  async listConversations(options = {}) {
177
147
  this.requireAuth();
@@ -180,35 +150,54 @@ export class ClaudeProvider extends BaseProvider {
180
150
  }
181
151
  const page = await this.getOrCreatePage();
182
152
  try {
183
- const pageSize = 100; // API limit per request
184
- const requestedLimit = options.limit;
185
- // Fetch conversations with pagination outside browser context
186
- // Track seen UUIDs to detect when API returns duplicates (pagination cycling)
187
- const allConversations = [];
188
- const seenUuids = new Set();
189
- let pageNum = 1;
190
- let hasMore = true;
191
- while (hasMore) {
192
- const result = await this.fetchConversationPage(page, pageNum, pageSize);
193
- // Check for duplicates - if we see any UUID we've already seen,
194
- // the API is cycling back (pagination doesn't work as expected)
195
- let foundDuplicate = false;
196
- for (const item of result.items) {
197
- if (seenUuids.has(item.uuid)) {
198
- foundDuplicate = true;
199
- break;
200
- }
201
- seenUuids.add(item.uuid);
202
- allConversations.push(item);
203
- }
204
- // Stop if we found duplicates (API cycled) or no more results
205
- hasMore = result.hasMore && !foundDuplicate;
206
- if (requestedLimit && allConversations.length >= requestedLimit) {
207
- hasMore = false;
208
- }
209
- pageNum++;
153
+ // Navigate to the recents page to get the full conversation list
154
+ await page.goto('https://claude.ai/recents', {
155
+ waitUntil: 'domcontentloaded',
156
+ timeout: 30000,
157
+ });
158
+ // Wait for at least one conversation link to appear
159
+ await page.waitForSelector('a[href*="/chat/"]', { timeout: 15000 });
160
+ // Click "Show more" / "Load more" until no more conversations remain.
161
+ // The button is often temporarily disabled while the page loads — poll until
162
+ // it becomes enabled (ready), disappears (all loaded), or stays disabled
163
+ // for 10s (treat as end-of-list).
164
+ while (true) {
165
+ const buttonState = await page
166
+ .waitForFunction(() => {
167
+ const allBtns = Array.from(document.querySelectorAll('button'));
168
+ const showMore = allBtns.find((b) => /show more|load more/i.test(b.textContent?.trim() ?? ''));
169
+ if (!showMore)
170
+ return 'gone'; // removed from DOM → all loaded
171
+ if (!showMore.disabled)
172
+ return 'ready'; // enabled → click it
173
+ return null; // still loading → keep polling
174
+ }, { timeout: 10000 })
175
+ .then((h) => h.jsonValue())
176
+ .catch(() => 'done');
177
+ if (buttonState !== 'ready')
178
+ break;
179
+ await page.getByRole('button', { name: /show more|load more/i }).click();
180
+ // Wait for new items to load; tolerate timeout on slow networks
181
+ await page.waitForLoadState('networkidle', { timeout: 5000 }).catch(() => { });
210
182
  }
211
- // Fetch projects
183
+ // Extract conversation data from DOM
184
+ const rawConversations = await page.evaluate(() => {
185
+ const seen = new Set();
186
+ return Array.from(document.querySelectorAll('a[href*="/chat/"]'))
187
+ .map((a) => {
188
+ const href = a.href;
189
+ const uuid = href.split('/chat/')[1]?.split('?')[0]?.split('/')[0] || '';
190
+ if (!uuid || seen.has(uuid))
191
+ return null;
192
+ seen.add(uuid);
193
+ const title = a.textContent?.trim() || 'Untitled';
194
+ const timeEl = a.closest('li, [role="listitem"], [data-testid]')?.querySelector('time');
195
+ const dateStr = timeEl?.getAttribute('datetime') || '';
196
+ return { uuid, title, dateStr };
197
+ })
198
+ .filter(Boolean);
199
+ });
200
+ // Fetch projects (still via API)
212
201
  const projectsData = await this.fetchProjects(page);
213
202
  // Store projects for later use
214
203
  if (Array.isArray(projectsData)) {
@@ -216,21 +205,53 @@ export class ClaudeProvider extends BaseProvider {
216
205
  this.projects.set(proj.uuid, proj);
217
206
  }
218
207
  }
219
- // Transform to ConversationSummary format
220
- let summaries = allConversations.map((conv) => {
221
- // Map conversation to project if available
222
- if (conv.project_uuid && this.projects.has(conv.project_uuid)) {
223
- const project = this.projects.get(conv.project_uuid);
224
- this.conversationProjects.set(conv.uuid, project.name);
208
+ // Enrich DOM-scraped results with API metadata (project assignment, summaries, timestamps).
209
+ // The API caps at 100 results but has correct metadata for the most recent conversations.
210
+ // Wrapped in try/catch so the pagination fix works even if this secondary call fails.
211
+ const metadataMap = new Map();
212
+ try {
213
+ const apiUrl = `https://claude.ai/api/organizations/${this.organizationId}/chat_conversations?limit=100`;
214
+ const apiItems = await page.evaluate(async ({ url }) => {
215
+ const res = await fetch(url, { method: 'GET', credentials: 'include' });
216
+ if (!res.ok)
217
+ return [];
218
+ const data = await res.json();
219
+ return (Array.isArray(data) ? data : []).map((c) => ({
220
+ uuid: c.uuid,
221
+ project_uuid: c.project_uuid || null,
222
+ summary: c.summary || null,
223
+ created_at: c.created_at || null,
224
+ updated_at: c.updated_at || null,
225
+ }));
226
+ }, { url: apiUrl });
227
+ for (const item of apiItems) {
228
+ metadataMap.set(item.uuid, {
229
+ projectUuid: item.project_uuid ?? undefined,
230
+ summary: item.summary ?? undefined,
231
+ createdAt: item.created_at ? new Date(item.created_at) : undefined,
232
+ updatedAt: item.updated_at ? new Date(item.updated_at) : undefined,
233
+ });
234
+ // Populate project mapping for use in fetchConversation
235
+ if (item.project_uuid && this.projects.has(item.project_uuid)) {
236
+ this.conversationProjects.set(item.uuid, this.projects.get(item.project_uuid).name);
237
+ }
225
238
  }
239
+ }
240
+ catch {
241
+ // Best-effort: DOM data is a sufficient fallback
242
+ }
243
+ // Transform to ConversationSummary format
244
+ let summaries = rawConversations.map(({ uuid, title, dateStr }) => {
245
+ const meta = metadataMap.get(uuid);
246
+ const domDate = dateStr ? new Date(dateStr) : new Date();
226
247
  return {
227
- id: conv.uuid,
228
- title: conv.name || 'Untitled',
229
- messageCount: 0, // Will be determined when fetching full conversation
230
- createdAt: conv.created_at ? new Date(conv.created_at) : new Date(),
231
- updatedAt: conv.updated_at ? new Date(conv.updated_at) : new Date(),
232
- hasMedia: false, // Will be determined when fetching full conversation
233
- preview: conv.summary, // Claude includes AI-generated summaries
248
+ id: uuid,
249
+ title,
250
+ messageCount: 0, // Filled in when fetching full conversation
251
+ createdAt: meta?.createdAt ?? domDate,
252
+ updatedAt: meta?.updatedAt ?? domDate,
253
+ hasMedia: false, // Filled in when fetching full conversation
254
+ preview: meta?.summary,
234
255
  };
235
256
  });
236
257
  // Apply filters
@@ -246,7 +267,7 @@ export class ClaudeProvider extends BaseProvider {
246
267
  return summaries;
247
268
  }
248
269
  catch (error) {
249
- // Don't close the cached page on error, just invalidate it
270
+ // Invalidate cached page on error so next call gets a fresh one
250
271
  this.cachedPage = undefined;
251
272
  throw error;
252
273
  }
@@ -263,125 +284,36 @@ export class ClaudeProvider extends BaseProvider {
263
284
  try {
264
285
  // Fetch conversation details with full message history
265
286
  const url = `https://claude.ai/api/organizations/${this.organizationId}/chat_conversations/${id}?tree=True&rendering_mode=messages&render_all_tools=true`;
266
- const data = await page.evaluate(async ({ url }) => {
287
+ const response = await page.evaluate(async ({ url }) => {
267
288
  const res = await fetch(url, {
268
289
  method: 'GET',
269
290
  credentials: 'include',
270
291
  });
271
- if (!res.ok) {
272
- throw new Error(`API request failed: ${res.status} ${res.statusText}`);
292
+ const text = await res.text();
293
+ let json = null;
294
+ try {
295
+ json = JSON.parse(text);
273
296
  }
274
- return await res.json();
297
+ catch {
298
+ // Ignore JSON parse errors
299
+ }
300
+ return {
301
+ ok: res.ok,
302
+ status: res.status,
303
+ statusText: res.statusText,
304
+ text,
305
+ json,
306
+ };
275
307
  }, { url });
308
+ if (!response.ok) {
309
+ throw createClaudeApiError(response.status, response.statusText, response.text);
310
+ }
311
+ const data = response.json;
276
312
  // Parse conversation data
277
313
  const title = data.name || 'Untitled';
278
- const messages = [];
279
314
  // Process chat messages
280
315
  const chatMessages = data.chat_messages || [];
281
- for (const chatMsg of chatMessages) {
282
- const sender = chatMsg.sender;
283
- const role = sender === 'human' ? 'user' : 'assistant';
284
- // Process content array - Claude messages have multiple content blocks
285
- const contentBlocks = chatMsg.content || [];
286
- const textParts = [];
287
- const thinkingParts = [];
288
- const attachments = [];
289
- for (const block of contentBlocks) {
290
- const contentType = block.type;
291
- if (contentType === 'text') {
292
- // Regular text content
293
- if (block.text) {
294
- textParts.push(block.text);
295
- }
296
- }
297
- else if (contentType === 'thinking') {
298
- // Extended thinking blocks (Claude-specific feature)
299
- if (block.thinking) {
300
- thinkingParts.push(`[Thinking: ${block.thinking}]`);
301
- }
302
- }
303
- else if (contentType === 'tool_use') {
304
- // Tool use blocks - check for artifacts first
305
- if (block.name === 'artifacts' && block.input) {
306
- // Extract artifact content and metadata
307
- const artifactId = block.input.id || `artifact-${attachments.length}`;
308
- const artifactType = block.input.type || 'text/plain';
309
- const artifactTitle = block.input.title || 'Untitled Artifact';
310
- const artifactContent = block.input.content || '';
311
- // Determine file extension from artifact type
312
- let extension = '.txt';
313
- if (artifactType.includes('html'))
314
- extension = '.html';
315
- else if (artifactType.includes('javascript') || artifactType.includes('react'))
316
- extension = '.jsx';
317
- else if (artifactType.includes('python'))
318
- extension = '.py';
319
- else if (artifactType.includes('svg'))
320
- extension = '.svg';
321
- else if (artifactType.includes('mermaid'))
322
- extension = '.mmd';
323
- // Add artifact to attachments with full content
324
- attachments.push({
325
- id: artifactId,
326
- type: 'artifact',
327
- title: artifactTitle,
328
- artifactType: artifactType,
329
- content: artifactContent,
330
- extension: extension,
331
- });
332
- // Update text marker to show artifact title
333
- textParts.push(`[Artifact: ${artifactTitle}]`);
334
- }
335
- else {
336
- // Other tool uses (web search, code execution, etc.)
337
- textParts.push(`[Tool: ${block.name || 'unknown'}]`);
338
- }
339
- }
340
- else if (contentType === 'tool_result') {
341
- // Skip tool results for now
342
- }
343
- else if (contentType === 'image') {
344
- // Image attachments
345
- if (block.source?.url) {
346
- attachments.push({
347
- id: block.id || `${chatMsg.uuid}-image-${attachments.length}`,
348
- type: 'image',
349
- url: block.source.url,
350
- mimeType: block.source.media_type || 'image/jpeg',
351
- });
352
- }
353
- }
354
- else if (contentType === 'document') {
355
- // Document attachments (PDFs, etc.)
356
- if (block.source?.url) {
357
- attachments.push({
358
- id: block.id || `${chatMsg.uuid}-doc-${attachments.length}`,
359
- type: 'document',
360
- url: block.source.url,
361
- mimeType: block.source.media_type || 'application/octet-stream',
362
- });
363
- }
364
- }
365
- }
366
- // Combine thinking and text (thinking first if present)
367
- const fullContent = [...thinkingParts, ...textParts].join('\n\n').trim();
368
- // Skip messages with no content and no attachments
369
- if (!fullContent && attachments.length === 0) {
370
- continue;
371
- }
372
- // Convert timestamp
373
- const timestamp = chatMsg.created_at ? new Date(chatMsg.created_at) : new Date();
374
- messages.push({
375
- id: chatMsg.uuid,
376
- role,
377
- content: fullContent,
378
- timestamp,
379
- attachments: attachments.length > 0 ? attachments : undefined,
380
- metadata: {
381
- originalSender: sender,
382
- },
383
- });
384
- }
316
+ const messages = parseClaudeMessages(chatMessages);
385
317
  // Extract hierarchy information
386
318
  const hierarchy = {};
387
319
  const projectName = this.conversationProjects.get(id);
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/claude/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/providers/claude/index.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,3 @@
1
+ import type { Message } from '../../types/index.js';
2
+ export declare function parseClaudeMessages(chatMessages: any[]): Message[];
3
+ //# sourceMappingURL=message-parser.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-parser.d.ts","sourceRoot":"","sources":["../../../src/providers/claude/message-parser.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,OAAO,EAAc,MAAM,sBAAsB,CAAC;AAEhE,wBAAgB,mBAAmB,CAAC,YAAY,EAAE,GAAG,EAAE,GAAG,OAAO,EAAE,CA+FlE"}
@@ -0,0 +1,95 @@
1
+ export function parseClaudeMessages(chatMessages) {
2
+ const messages = [];
3
+ for (const chatMsg of chatMessages) {
4
+ const sender = chatMsg.sender;
5
+ const role = sender === 'human' ? 'user' : 'assistant';
6
+ const contentBlocks = chatMsg.content || [];
7
+ const textParts = [];
8
+ const thinkingParts = [];
9
+ const attachments = [];
10
+ for (const block of contentBlocks) {
11
+ const contentType = block.type;
12
+ if (contentType === 'text') {
13
+ if (block.text) {
14
+ textParts.push(block.text);
15
+ }
16
+ }
17
+ else if (contentType === 'thinking') {
18
+ if (block.thinking) {
19
+ thinkingParts.push(`[Thinking: ${block.thinking}]`);
20
+ }
21
+ }
22
+ else if (contentType === 'tool_use') {
23
+ if (block.name === 'artifacts' && block.input) {
24
+ const artifactId = block.input.id || `artifact-${attachments.length}`;
25
+ const artifactType = block.input.type || 'text/plain';
26
+ const artifactTitle = block.input.title || 'Untitled Artifact';
27
+ const artifactContent = block.input.content || '';
28
+ let extension = '.txt';
29
+ if (artifactType.includes('html'))
30
+ extension = '.html';
31
+ else if (artifactType.includes('javascript') || artifactType.includes('react'))
32
+ extension = '.jsx';
33
+ else if (artifactType.includes('python'))
34
+ extension = '.py';
35
+ else if (artifactType.includes('svg'))
36
+ extension = '.svg';
37
+ else if (artifactType.includes('mermaid'))
38
+ extension = '.mmd';
39
+ attachments.push({
40
+ id: artifactId,
41
+ type: 'artifact',
42
+ title: artifactTitle,
43
+ artifactType: artifactType,
44
+ content: artifactContent,
45
+ extension: extension,
46
+ });
47
+ textParts.push(`[Artifact: ${artifactTitle}]`);
48
+ }
49
+ else {
50
+ textParts.push(`[Tool: ${block.name || 'unknown'}]`);
51
+ }
52
+ }
53
+ else if (contentType === 'tool_result') {
54
+ // Skip tool results for now
55
+ }
56
+ else if (contentType === 'image') {
57
+ if (block.source?.url) {
58
+ attachments.push({
59
+ id: block.id || `${chatMsg.uuid}-image-${attachments.length}`,
60
+ type: 'image',
61
+ url: block.source.url,
62
+ mimeType: block.source.media_type || 'image/jpeg',
63
+ });
64
+ }
65
+ }
66
+ else if (contentType === 'document') {
67
+ if (block.source?.url) {
68
+ attachments.push({
69
+ id: block.id || `${chatMsg.uuid}-doc-${attachments.length}`,
70
+ type: 'document',
71
+ url: block.source.url,
72
+ mimeType: block.source.media_type || 'application/octet-stream',
73
+ });
74
+ }
75
+ }
76
+ }
77
+ const fullContent = [...thinkingParts, ...textParts].join('\n\n').trim();
78
+ if (!fullContent && attachments.length === 0) {
79
+ continue;
80
+ }
81
+ const timestamp = chatMsg.created_at ? new Date(chatMsg.created_at) : new Date();
82
+ messages.push({
83
+ id: chatMsg.uuid,
84
+ role,
85
+ content: fullContent,
86
+ timestamp,
87
+ attachments: attachments.length > 0 ? attachments : undefined,
88
+ metadata: {
89
+ originalSender: sender,
90
+ },
91
+ });
92
+ }
93
+ return messages;
94
+ }
95
+ //# sourceMappingURL=message-parser.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"message-parser.js","sourceRoot":"","sources":["../../../src/providers/claude/message-parser.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,56 @@
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 type { ProviderConfig, Conversation } from '../../types/index.js';
12
+ import type { ListConversationsOptions, ConversationSummary } from '../../types/provider.js';
13
+ export declare class GeminiProvider extends BaseProvider {
14
+ readonly name: "gemini";
15
+ readonly displayName = "Gemini";
16
+ readonly supportedAuthMethods: ('api-key' | 'cookies' | 'oauth')[];
17
+ readonly rateLimit: {
18
+ maxConcurrent: number;
19
+ };
20
+ private static readonly CAPTCHA_COOLDOWN_MS;
21
+ private scraper?;
22
+ private cachedPage?;
23
+ private captchaBlockedUntil;
24
+ private conversationTimestamps;
25
+ /** Throws immediately if the CAPTCHA cooldown semaphore is still active. */
26
+ private checkCaptchaBlock;
27
+ /** Arms the CAPTCHA semaphore for 60 minutes and logs a warning. */
28
+ private triggerCaptchaBlock;
29
+ /**
30
+ * Get or create a reusable browser page.
31
+ * Does not navigate — callers are responsible for navigating to their target URL.
32
+ */
33
+ private getOrCreatePage;
34
+ /**
35
+ * Authenticate with Gemini using Google account cookies
36
+ */
37
+ authenticate(config: ProviderConfig): Promise<boolean>;
38
+ /**
39
+ * Check if the current cookies give access to gemini.google.com
40
+ */
41
+ isAuthenticated(): Promise<boolean>;
42
+ /**
43
+ * List conversations via the internal batchexecute API (MaZiqc RPC).
44
+ * Avoids DOM scroll scraping — uses cursor-based pagination from the network API.
45
+ */
46
+ listConversations(options?: ListConversationsOptions): Promise<ConversationSummary[]>;
47
+ /**
48
+ * Fetch a full conversation by navigating to its URL
49
+ */
50
+ fetchConversation(id: string): Promise<Conversation>;
51
+ /**
52
+ * Cleanup browser resources
53
+ */
54
+ cleanup(): Promise<void>;
55
+ }
56
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/providers/gemini/index.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,YAAY,EAAE,MAAM,YAAY,CAAC;AAC1C,OAAO,KAAK,EAAE,cAAc,EAAE,YAAY,EAAW,MAAM,sBAAsB,CAAC;AAClF,OAAO,KAAK,EAAE,wBAAwB,EAAE,mBAAmB,EAAE,MAAM,yBAAyB,CAAC;AAK7F,qBAAa,cAAe,SAAQ,YAAY;IAC9C,QAAQ,CAAC,IAAI,EAAG,QAAQ,CAAU;IAClC,QAAQ,CAAC,WAAW,YAAY;IAChC,QAAQ,CAAC,oBAAoB,EAAE,CAAC,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC,EAAE,CAAe;IAEjF,QAAQ,CAAC,SAAS;;MAAwB;IAE1C,OAAO,CAAC,MAAM,CAAC,QAAQ,CAAC,mBAAmB,CAAkB;IAE7D,OAAO,CAAC,OAAO,CAAC,CAAiB;IACjC,OAAO,CAAC,UAAU,CAAC,CAAM;IAEzB,OAAO,CAAC,mBAAmB,CAAqB;IAEhD,OAAO,CAAC,sBAAsB,CAAgE;IAE9F,4EAA4E;IAC5E,OAAO,CAAC,iBAAiB;IAazB,oEAAoE;IACpE,OAAO,CAAC,mBAAmB;IAQ3B;;;OAGG;YACW,eAAe;IAoB7B;;OAEG;IACG,YAAY,CAAC,MAAM,EAAE,cAAc,GAAG,OAAO,CAAC,OAAO,CAAC;IAiB5D;;OAEG;IACG,eAAe,IAAI,OAAO,CAAC,OAAO,CAAC;IA6BzC;;;OAGG;IACG,iBAAiB,CAAC,OAAO,GAAE,wBAA6B,GAAG,OAAO,CAAC,mBAAmB,EAAE,CAAC;IAyN/F;;OAEG;IACG,iBAAiB,CAAC,EAAE,EAAE,MAAM,GAAG,OAAO,CAAC,YAAY,CAAC;IAsI1D;;OAEG;IACG,OAAO,IAAI,OAAO,CAAC,IAAI,CAAC;CAc/B"}