@rudderjs/ai 1.4.0 → 1.6.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 (179) hide show
  1. package/README.md +484 -7
  2. package/boost/guidelines.md +62 -2
  3. package/boost/skills/ai-tools/SKILL.md +14 -5
  4. package/dist/agent.d.ts +66 -15
  5. package/dist/agent.d.ts.map +1 -1
  6. package/dist/agent.js +529 -58
  7. package/dist/agent.js.map +1 -1
  8. package/dist/budget/pricing.d.ts +124 -0
  9. package/dist/budget/pricing.d.ts.map +1 -0
  10. package/dist/budget/pricing.js +175 -0
  11. package/dist/budget/pricing.js.map +1 -0
  12. package/dist/budget/storage.d.ts +104 -0
  13. package/dist/budget/storage.d.ts.map +1 -0
  14. package/dist/budget/storage.js +0 -0
  15. package/dist/budget/storage.js.map +1 -0
  16. package/dist/budget/with-budget.d.ts +119 -0
  17. package/dist/budget/with-budget.d.ts.map +1 -0
  18. package/dist/budget/with-budget.js +175 -0
  19. package/dist/budget/with-budget.js.map +1 -0
  20. package/dist/budget-orm/index.d.ts +96 -0
  21. package/dist/budget-orm/index.d.ts.map +1 -0
  22. package/dist/budget-orm/index.js +177 -0
  23. package/dist/budget-orm/index.js.map +1 -0
  24. package/dist/commands/ai-eval.d.ts +93 -0
  25. package/dist/commands/ai-eval.d.ts.map +1 -0
  26. package/dist/commands/ai-eval.js +378 -0
  27. package/dist/commands/ai-eval.js.map +1 -0
  28. package/dist/computer-use/actions.d.ts +214 -0
  29. package/dist/computer-use/actions.d.ts.map +1 -0
  30. package/dist/computer-use/actions.js +48 -0
  31. package/dist/computer-use/actions.js.map +1 -0
  32. package/dist/computer-use/errors.d.ts +57 -0
  33. package/dist/computer-use/errors.d.ts.map +1 -0
  34. package/dist/computer-use/errors.js +76 -0
  35. package/dist/computer-use/errors.js.map +1 -0
  36. package/dist/computer-use/index.d.ts +53 -0
  37. package/dist/computer-use/index.d.ts.map +1 -0
  38. package/dist/computer-use/index.js +51 -0
  39. package/dist/computer-use/index.js.map +1 -0
  40. package/dist/computer-use/playwright.d.ts +76 -0
  41. package/dist/computer-use/playwright.d.ts.map +1 -0
  42. package/dist/computer-use/playwright.js +270 -0
  43. package/dist/computer-use/playwright.js.map +1 -0
  44. package/dist/computer-use/tool.d.ts +154 -0
  45. package/dist/computer-use/tool.d.ts.map +1 -0
  46. package/dist/computer-use/tool.js +210 -0
  47. package/dist/computer-use/tool.js.map +1 -0
  48. package/dist/eval/fixtures.d.ts +65 -0
  49. package/dist/eval/fixtures.d.ts.map +1 -0
  50. package/dist/eval/fixtures.js +110 -0
  51. package/dist/eval/fixtures.js.map +1 -0
  52. package/dist/eval/html-reporter.d.ts +25 -0
  53. package/dist/eval/html-reporter.d.ts.map +1 -0
  54. package/dist/eval/html-reporter.js +209 -0
  55. package/dist/eval/html-reporter.js.map +1 -0
  56. package/dist/eval/index.d.ts +271 -0
  57. package/dist/eval/index.d.ts.map +1 -0
  58. package/dist/eval/index.js +510 -0
  59. package/dist/eval/index.js.map +1 -0
  60. package/dist/eval/json-reporter.d.ts +43 -0
  61. package/dist/eval/json-reporter.d.ts.map +1 -0
  62. package/dist/eval/json-reporter.js +40 -0
  63. package/dist/eval/json-reporter.js.map +1 -0
  64. package/dist/fake.d.ts +36 -1
  65. package/dist/fake.d.ts.map +1 -1
  66. package/dist/fake.js +49 -2
  67. package/dist/fake.js.map +1 -1
  68. package/dist/file-search.d.ts +168 -0
  69. package/dist/file-search.d.ts.map +1 -0
  70. package/dist/file-search.js +158 -0
  71. package/dist/file-search.js.map +1 -0
  72. package/dist/handoff.d.ts +95 -0
  73. package/dist/handoff.d.ts.map +1 -0
  74. package/dist/handoff.js +78 -0
  75. package/dist/handoff.js.map +1 -0
  76. package/dist/index.d.ts +29 -5
  77. package/dist/index.d.ts.map +1 -1
  78. package/dist/index.js +22 -2
  79. package/dist/index.js.map +1 -1
  80. package/dist/mcp/client-tools.d.ts +39 -0
  81. package/dist/mcp/client-tools.d.ts.map +1 -0
  82. package/dist/mcp/client-tools.js +147 -0
  83. package/dist/mcp/client-tools.js.map +1 -0
  84. package/dist/mcp/index.d.ts +16 -0
  85. package/dist/mcp/index.d.ts.map +1 -0
  86. package/dist/mcp/index.js +15 -0
  87. package/dist/mcp/index.js.map +1 -0
  88. package/dist/mcp/server-from-agent.d.ts +24 -0
  89. package/dist/mcp/server-from-agent.d.ts.map +1 -0
  90. package/dist/mcp/server-from-agent.js +113 -0
  91. package/dist/mcp/server-from-agent.js.map +1 -0
  92. package/dist/mcp/types.d.ts +64 -0
  93. package/dist/mcp/types.d.ts.map +1 -0
  94. package/dist/mcp/types.js +6 -0
  95. package/dist/mcp/types.js.map +1 -0
  96. package/dist/memory-embedding/index.d.ts +121 -0
  97. package/dist/memory-embedding/index.d.ts.map +1 -0
  98. package/dist/memory-embedding/index.js +229 -0
  99. package/dist/memory-embedding/index.js.map +1 -0
  100. package/dist/memory-extract.d.ts +60 -0
  101. package/dist/memory-extract.d.ts.map +1 -0
  102. package/dist/memory-extract.js +163 -0
  103. package/dist/memory-extract.js.map +1 -0
  104. package/dist/memory-inject.d.ts +39 -0
  105. package/dist/memory-inject.d.ts.map +1 -0
  106. package/dist/memory-inject.js +135 -0
  107. package/dist/memory-inject.js.map +1 -0
  108. package/dist/memory-orm/index.d.ts +118 -0
  109. package/dist/memory-orm/index.d.ts.map +1 -0
  110. package/dist/memory-orm/index.js +187 -0
  111. package/dist/memory-orm/index.js.map +1 -0
  112. package/dist/memory.d.ts +55 -0
  113. package/dist/memory.d.ts.map +1 -0
  114. package/dist/memory.js +132 -0
  115. package/dist/memory.js.map +1 -0
  116. package/dist/observers.d.ts +22 -0
  117. package/dist/observers.d.ts.map +1 -1
  118. package/dist/observers.js.map +1 -1
  119. package/dist/provider-tools.d.ts +15 -1
  120. package/dist/provider-tools.d.ts.map +1 -1
  121. package/dist/provider-tools.js +21 -1
  122. package/dist/provider-tools.js.map +1 -1
  123. package/dist/providers/anthropic.d.ts +9 -1
  124. package/dist/providers/anthropic.d.ts.map +1 -1
  125. package/dist/providers/anthropic.js +66 -11
  126. package/dist/providers/anthropic.js.map +1 -1
  127. package/dist/providers/bedrock.d.ts +60 -0
  128. package/dist/providers/bedrock.d.ts.map +1 -0
  129. package/dist/providers/bedrock.js +167 -0
  130. package/dist/providers/bedrock.js.map +1 -0
  131. package/dist/providers/elevenlabs.d.ts +98 -0
  132. package/dist/providers/elevenlabs.d.ts.map +1 -0
  133. package/dist/providers/elevenlabs.js +229 -0
  134. package/dist/providers/elevenlabs.js.map +1 -0
  135. package/dist/providers/google.d.ts +83 -1
  136. package/dist/providers/google.d.ts.map +1 -1
  137. package/dist/providers/google.js +491 -8
  138. package/dist/providers/google.js.map +1 -1
  139. package/dist/providers/openai.d.ts +8 -1
  140. package/dist/providers/openai.d.ts.map +1 -1
  141. package/dist/providers/openai.js +215 -5
  142. package/dist/providers/openai.js.map +1 -1
  143. package/dist/providers/openrouter.d.ts +43 -0
  144. package/dist/providers/openrouter.d.ts.map +1 -0
  145. package/dist/providers/openrouter.js +21 -0
  146. package/dist/providers/openrouter.js.map +1 -0
  147. package/dist/providers/voyage.d.ts +91 -0
  148. package/dist/providers/voyage.d.ts.map +1 -0
  149. package/dist/providers/voyage.js +166 -0
  150. package/dist/providers/voyage.js.map +1 -0
  151. package/dist/queue-job.d.ts +69 -4
  152. package/dist/queue-job.d.ts.map +1 -1
  153. package/dist/queue-job.js +114 -11
  154. package/dist/queue-job.js.map +1 -1
  155. package/dist/registry.d.ts +3 -1
  156. package/dist/registry.d.ts.map +1 -1
  157. package/dist/registry.js +10 -0
  158. package/dist/registry.js.map +1 -1
  159. package/dist/server/provider.d.ts.map +1 -1
  160. package/dist/server/provider.js +38 -1
  161. package/dist/server/provider.js.map +1 -1
  162. package/dist/similarity-search.d.ts +163 -0
  163. package/dist/similarity-search.d.ts.map +1 -0
  164. package/dist/similarity-search.js +147 -0
  165. package/dist/similarity-search.js.map +1 -0
  166. package/dist/sub-agent-run-store.d.ts +40 -3
  167. package/dist/sub-agent-run-store.d.ts.map +1 -1
  168. package/dist/sub-agent-run-store.js.map +1 -1
  169. package/dist/tool.d.ts +59 -0
  170. package/dist/tool.d.ts.map +1 -1
  171. package/dist/tool.js +45 -4
  172. package/dist/tool.js.map +1 -1
  173. package/dist/types.d.ts +285 -1
  174. package/dist/types.d.ts.map +1 -1
  175. package/dist/vector-stores/index.d.ts +96 -0
  176. package/dist/vector-stores/index.d.ts.map +1 -0
  177. package/dist/vector-stores/index.js +153 -0
  178. package/dist/vector-stores/index.js.map +1 -0
  179. package/package.json +43 -4
@@ -20,6 +20,9 @@ export class GoogleProvider {
20
20
  createFiles() {
21
21
  return new GoogleFileAdapter(this.config);
22
22
  }
23
+ createVectorStores() {
24
+ return new GoogleVectorStoreAdapter(this.config);
25
+ }
23
26
  }
24
27
  // ─── Adapter ──────────────────────────────────────────────
25
28
  export class GoogleAdapter {
@@ -49,6 +52,8 @@ export class GoogleAdapter {
49
52
  async buildPayload(options) {
50
53
  const client = await this.getClient();
51
54
  const { system, contents } = toGeminiContents(options.messages);
55
+ // `toGeminiTools` returns the already-wrapped top-level array
56
+ // ({functionDeclarations: [...]} + any native blocks like google_search).
52
57
  const geminiTools = options.tools?.length ? toGeminiTools(options.tools) : undefined;
53
58
  const config = {};
54
59
  if (options.maxTokens)
@@ -59,8 +64,8 @@ export class GoogleAdapter {
59
64
  config['topP'] = options.topP;
60
65
  if (options.stop)
61
66
  config['stopSequences'] = options.stop;
62
- if (geminiTools)
63
- config['tools'] = [{ functionDeclarations: geminiTools }];
67
+ if (geminiTools && geminiTools.length > 0)
68
+ config['tools'] = geminiTools;
64
69
  if (options.toolChoice)
65
70
  config['toolConfig'] = toGeminiToolConfig(options.toolChoice);
66
71
  // The Gemini SDK reads abortSignal from the config block.
@@ -78,7 +83,7 @@ export class GoogleAdapter {
78
83
  cacheKey,
79
84
  ...(options.cache.instructions && system ? { systemInstruction: { parts: [{ text: system }] } } : {}),
80
85
  ...(cachedSlice.length > 0 ? { contents: cachedSlice } : {}),
81
- ...(options.cache.tools && geminiTools ? { tools: [{ functionDeclarations: geminiTools }] } : {}),
86
+ ...(options.cache.tools && geminiTools && geminiTools.length > 0 ? { tools: geminiTools } : {}),
82
87
  ...(options.cache.ttl ? { ttl: durationToGoogleTtl(options.cache.ttl) } : {}),
83
88
  });
84
89
  }
@@ -230,12 +235,118 @@ function toGeminiContents(messages) {
230
235
  });
231
236
  return { system, contents };
232
237
  }
238
+ /**
239
+ * Build Gemini's `tools` array. The Gemini API accepts a mixed array where
240
+ * function declarations live under one wrapper entry and provider-native
241
+ * blocks (e.g. `{ google_search: {} }`) sit as separate top-level entries:
242
+ *
243
+ * tools: [
244
+ * { functionDeclarations: [...] },
245
+ * { google_search: {} },
246
+ * ]
247
+ *
248
+ * Tools tagged with a recognized `providerHint.type` are emitted as their
249
+ * native top-level block; everything else collects into one
250
+ * `functionDeclarations` entry. Tools with unrecognized hints fall through
251
+ * to the function-declaration shape — the input schema's still there, so
252
+ * the worst case is the model treats it as a regular function-call tool.
253
+ */
233
254
  function toGeminiTools(tools) {
234
- return tools.map(t => ({
235
- name: t.name,
236
- description: t.description,
237
- parameters: t.parameters,
238
- }));
255
+ const fnDecls = [];
256
+ const blocks = [];
257
+ for (const t of tools) {
258
+ if (t.providerHint?.type === 'web-search') {
259
+ // Gemini's native search tool. The block's `google_search: {}` form is
260
+ // intentional — Gemini doesn't accept allowed_domains / max_uses on
261
+ // this block, so the WebSearch.domains() / .maxResults() opts are
262
+ // ignored on this provider (documented on WebSearch).
263
+ blocks.push({ google_search: {} });
264
+ continue;
265
+ }
266
+ if (t.providerHint?.type === 'file-search') {
267
+ // Gemini's native FileSearch tool (#B8.5). The OpenAI-shaped hint
268
+ // (`vector_store_ids` + typed `filters`) is translated to Gemini's
269
+ // shape (`fileSearchStoreNames` + `metadataFilter` string). `topK`
270
+ // mirrors OpenAI's `max_num_results`.
271
+ const storeNames = t.providerHint['vector_store_ids'] ?? [];
272
+ const fileSearchConfig = {
273
+ fileSearchStoreNames: storeNames,
274
+ };
275
+ const filters = t.providerHint['filters'];
276
+ if (filters !== undefined) {
277
+ fileSearchConfig['metadataFilter'] = filterToGeminiString(filters);
278
+ }
279
+ const maxNumResults = t.providerHint['max_num_results'];
280
+ if (maxNumResults !== undefined) {
281
+ fileSearchConfig['topK'] = maxNumResults;
282
+ }
283
+ blocks.push({ fileSearch: fileSearchConfig });
284
+ continue;
285
+ }
286
+ fnDecls.push({
287
+ name: t.name,
288
+ description: t.description,
289
+ parameters: t.parameters,
290
+ });
291
+ }
292
+ if (fnDecls.length > 0)
293
+ blocks.unshift({ functionDeclarations: fnDecls });
294
+ return blocks;
295
+ }
296
+ /**
297
+ * Translate a typed `FileSearchFilter` (OpenAI-shaped) into Gemini's
298
+ * `metadataFilter` string syntax (#B8.5).
299
+ *
300
+ * - `{ type: 'eq', key, value }` → `key = value`
301
+ * - `{ type: 'ne', key, value }` → `key != value`
302
+ * - `{ type: 'gt', key, value }` → `key > value`
303
+ * - `{ type: 'gte', key, value }` → `key >= value`
304
+ * - `{ type: 'lt', key, value }` → `key < value`
305
+ * - `{ type: 'lte', key, value }` → `key <= value`
306
+ * - `{ type: 'and', filters }` → `(f1) AND (f2) AND ...`
307
+ * - `{ type: 'or', filters }` → `(f1) OR (f2) OR ...`
308
+ *
309
+ * String values are wrapped in double quotes with `"` and `\` escaped.
310
+ * Numbers and booleans render bare.
311
+ *
312
+ * Exported for unit testing — see `google-vector-stores.test.ts`.
313
+ *
314
+ * @internal
315
+ */
316
+ export function filterToGeminiString(filter) {
317
+ switch (filter.type) {
318
+ case 'eq':
319
+ case 'ne':
320
+ case 'gt':
321
+ case 'gte':
322
+ case 'lt':
323
+ case 'lte': {
324
+ const op = GEMINI_FILTER_OP[filter.type];
325
+ return `${filter.key} ${op} ${formatGeminiValue(filter.value)}`;
326
+ }
327
+ case 'and':
328
+ case 'or': {
329
+ if (filter.filters.length === 0) {
330
+ throw new Error(`[RudderJS AI] Gemini metadataFilter: ${filter.type.toUpperCase()} requires at least one sub-filter.`);
331
+ }
332
+ const joiner = filter.type === 'and' ? ' AND ' : ' OR ';
333
+ return filter.filters.map(f => `(${filterToGeminiString(f)})`).join(joiner);
334
+ }
335
+ }
336
+ }
337
+ const GEMINI_FILTER_OP = {
338
+ eq: '=',
339
+ ne: '!=',
340
+ gt: '>',
341
+ gte: '>=',
342
+ lt: '<',
343
+ lte: '<=',
344
+ };
345
+ function formatGeminiValue(value) {
346
+ if (typeof value === 'string') {
347
+ return `"${value.replace(/\\/g, '\\\\').replace(/"/g, '\\"')}"`;
348
+ }
349
+ return String(value);
239
350
  }
240
351
  function toGeminiToolConfig(choice) {
241
352
  if (choice === 'auto')
@@ -402,4 +513,376 @@ class GoogleFileAdapter {
402
513
  await client.files.delete({ name: fileId });
403
514
  }
404
515
  }
516
+ // ─── Vector Stores (Gemini FileSearchStores, #B8.5) ──────
517
+ //
518
+ // Gemini's hosted RAG surface is `ai.fileSearchStores.*` — a direct
519
+ // OpenAI-equivalent that handles ingestion, chunking, embedding, and
520
+ // retrieval server-side. NOT available on Vertex AI; the underlying SDK
521
+ // methods throw for Vertex clients.
522
+ //
523
+ // Mapping decisions:
524
+ // - `VectorStoreInfo.id` is the full Gemini resource name
525
+ // (`fileSearchStores/foo-bar`). Apps pass it back verbatim to `get` /
526
+ // `delete` / `addFile`.
527
+ // - `VectorStoreInfo.name` is `displayName`. The OpenAI adapter populates
528
+ // it from the store's name field; we use the user-supplied display name
529
+ // to keep `create('Knowledge Base')` round-trip-able.
530
+ // - `createdAt` is parsed from ISO 8601 to Unix seconds for parity with
531
+ // OpenAI's `created_at`.
532
+ // - `fileCount` sums `activeDocumentsCount + pendingDocumentsCount` (both
533
+ // string-encoded). `failedDocumentsCount` is dropped — it's surfaced
534
+ // per-file via `addFile`'s status when polling.
535
+ // - `bytesUsed` is parsed from `sizeBytes` (string-encoded).
536
+ // - Store-level `metadata` and `expiresAfter` are NOT supported by Gemini.
537
+ // Passing them throws fail-loud so apps don't silently lose data.
538
+ //
539
+ // `addFile` paths:
540
+ // - `{ fileId }` → `importFile` (re-uses an existing Files API file).
541
+ // - `{ filePath | fileBuffer }` → `uploadToFileSearchStore` (single-shot
542
+ // upload). Both paths return long-running operations; default
543
+ // `wait: true` polls `client.operations.get` until `done`.
544
+ // - `attributes` (Record<string, primitive>) → Gemini's `customMetadata`
545
+ // array shape; booleans coerce to `stringValue: 'true' | 'false'`.
546
+ class GoogleVectorStoreAdapter {
547
+ config;
548
+ client = null;
549
+ constructor(config) {
550
+ this.config = config;
551
+ }
552
+ async getClient() {
553
+ if (this.client)
554
+ return this.client;
555
+ const sdk = await import(/* @vite-ignore */ '@google/genai');
556
+ const GoogleGenAI = sdk.GoogleGenAI ?? sdk.default;
557
+ this.client = new GoogleGenAI({ apiKey: this.config.apiKey });
558
+ return this.client;
559
+ }
560
+ async create(opts) {
561
+ if (opts.metadata) {
562
+ throw new Error('[RudderJS AI] Gemini FileSearchStores does not support store-level metadata. ' +
563
+ 'Attach searchable metadata per-document via addFile({ attributes }).');
564
+ }
565
+ if (opts.expiresAfter) {
566
+ throw new Error('[RudderJS AI] Gemini FileSearchStores does not support expiresAfter. ' +
567
+ 'Stores persist until explicitly deleted via VectorStores.delete().');
568
+ }
569
+ const client = await this.getClient();
570
+ const response = await client.fileSearchStores.create({
571
+ config: { displayName: opts.name },
572
+ });
573
+ return fromGeminiFileSearchStore(response, opts.name);
574
+ }
575
+ async list(opts) {
576
+ const client = await this.getClient();
577
+ const config = {};
578
+ if (opts?.limit !== undefined)
579
+ config['pageSize'] = opts.limit;
580
+ if (opts?.after !== undefined)
581
+ config['pageToken'] = opts.after;
582
+ // Gemini paginates forward via pageToken only — `before` has no
583
+ // equivalent. Drop it silently (matches OpenAI when `before` is unset).
584
+ const pager = await client.fileSearchStores.list({ config });
585
+ const items = Array.isArray(pager?.page) ? pager.page : [];
586
+ return { stores: items.map(item => fromGeminiFileSearchStore(item)) };
587
+ }
588
+ async get(id) {
589
+ const client = await this.getClient();
590
+ const response = await client.fileSearchStores.get({ name: id });
591
+ return fromGeminiFileSearchStore(response);
592
+ }
593
+ async delete(id) {
594
+ const client = await this.getClient();
595
+ // `force: true` mirrors OpenAI's behavior — deleting a store also
596
+ // drops attached documents. Without `force`, Gemini returns
597
+ // FAILED_PRECONDITION when the store has any documents.
598
+ await client.fileSearchStores.delete({ name: id, config: { force: true } });
599
+ }
600
+ async addFile(storeId, opts) {
601
+ const client = await this.getClient();
602
+ const customMetadata = opts.attributes ? attributesToCustomMetadata(opts.attributes) : undefined;
603
+ // Path 1: re-use an existing Files API file.
604
+ if (opts.fileId) {
605
+ const importConfig = {};
606
+ if (customMetadata)
607
+ importConfig['customMetadata'] = customMetadata;
608
+ if (opts.chunkingStrategy)
609
+ importConfig['chunkingConfig'] = opts.chunkingStrategy;
610
+ const op = await client.fileSearchStores.importFile({
611
+ fileSearchStoreName: storeId,
612
+ fileName: opts.fileId,
613
+ config: importConfig,
614
+ });
615
+ return finishVectorStoreOperation(client, op, storeId, opts);
616
+ }
617
+ // Path 2: upload a local file directly. Either `filePath` or
618
+ // `fileBuffer` is required — Gemini's SDK accepts a path string OR a
619
+ // Blob. For `filePath`, the SDK infers mimeType from the extension;
620
+ // for `fileBuffer`, it reads `blob.type` which is empty on a
621
+ // untyped `new Blob([data])`, so we forward an explicit `mimeType`
622
+ // derived from `filename` to avoid `Can not determine mimeType`.
623
+ if (opts.filePath || opts.fileBuffer) {
624
+ const uploadConfig = {};
625
+ if (customMetadata)
626
+ uploadConfig['customMetadata'] = customMetadata;
627
+ if (opts.chunkingStrategy)
628
+ uploadConfig['chunkingConfig'] = opts.chunkingStrategy;
629
+ if (opts.fileBuffer?.filename)
630
+ uploadConfig['displayName'] = opts.fileBuffer.filename;
631
+ if (opts.fileBuffer?.filename) {
632
+ const mimeType = mimeTypeFromFilename(opts.fileBuffer.filename);
633
+ if (mimeType)
634
+ uploadConfig['mimeType'] = mimeType;
635
+ }
636
+ const file = opts.filePath ?? new Blob([opts.fileBuffer.data]);
637
+ const op = await client.fileSearchStores.uploadToFileSearchStore({
638
+ fileSearchStoreName: storeId,
639
+ file,
640
+ config: uploadConfig,
641
+ });
642
+ return finishVectorStoreOperation(client, op, storeId, opts);
643
+ }
644
+ throw new Error('[RudderJS AI] addFile requires fileId, filePath, or fileBuffer. ' +
645
+ 'Pass an existing Gemini Files API id via { fileId } (e.g. `files/abc-123`) or ' +
646
+ 'a local source via { filePath } / { fileBuffer }.');
647
+ }
648
+ async removeFile(storeId, fileId) {
649
+ const client = await this.getClient();
650
+ // Document resource names are `fileSearchStores/<store>/documents/<doc>`.
651
+ // Apps that pass the full path use it verbatim; apps that pass only
652
+ // the document id get the store prefix joined for them.
653
+ const name = fileId.includes('/documents/') ? fileId : `${storeId}/documents/${fileId}`;
654
+ await client.fileSearchStores.documents.delete({ name });
655
+ }
656
+ async listFiles(storeId, opts) {
657
+ const client = await this.getClient();
658
+ const config = {};
659
+ if (opts?.limit !== undefined)
660
+ config['pageSize'] = opts.limit;
661
+ if (opts?.after !== undefined)
662
+ config['pageToken'] = opts.after;
663
+ const pager = await client.fileSearchStores.documents.list({ parent: storeId, config });
664
+ const items = Array.isArray(pager?.page) ? pager.page : [];
665
+ return { files: items.map(doc => fromGeminiDocument(doc, storeId)) };
666
+ }
667
+ }
668
+ /**
669
+ * Wait for a long-running file ingestion operation to finish and map the
670
+ * result into `VectorStoreFileInfo`. Honors `wait`/`pollInterval`/
671
+ * `pollTimeout` from `VectorStoreAddOptions` (defaults: wait=true,
672
+ * interval=1000ms, timeout=120_000ms).
673
+ *
674
+ * The terminal state of a Gemini ingestion op is exposed two ways:
675
+ * - `op.error?: { code, message }` when ingestion failed.
676
+ * - `op.response?: { documentName: 'fileSearchStores/.../documents/...' }`
677
+ * when successful.
678
+ *
679
+ * On success we follow up with a single `documents.get` to fetch
680
+ * `state` / `sizeBytes` / `createTime`. On failure we surface the error
681
+ * message via `lastError` and the status flips to `'failed'`.
682
+ */
683
+ async function finishVectorStoreOperation(client, initialOp, storeId, opts) {
684
+ if (opts.wait === false) {
685
+ return {
686
+ id: initialOp?.name ?? `${storeId}/documents/pending-${Date.now()}`,
687
+ vectorStoreId: storeId,
688
+ status: 'in_progress',
689
+ createdAt: Math.floor(Date.now() / 1000),
690
+ ...(opts.attributes ? { attributes: opts.attributes } : {}),
691
+ };
692
+ }
693
+ const pollInterval = opts.pollInterval ?? 1000;
694
+ const pollTimeout = opts.pollTimeout ?? 120_000;
695
+ const deadline = Date.now() + pollTimeout;
696
+ let current = initialOp;
697
+ while (!current?.done) {
698
+ if (Date.now() > deadline) {
699
+ throw new Error(`[RudderJS AI] Gemini FileSearchStore ingestion timed out after ${pollTimeout}ms ` +
700
+ `(store=${storeId}). Increase pollTimeout or set wait: false for fire-and-forget.`);
701
+ }
702
+ await sleep(pollInterval);
703
+ current = await client.operations.get({ operation: current });
704
+ }
705
+ if (current.error) {
706
+ const errMessage = current.error.message ?? 'unknown error';
707
+ return {
708
+ id: current.name ?? `${storeId}/documents/failed-${Date.now()}`,
709
+ vectorStoreId: storeId,
710
+ status: 'failed',
711
+ createdAt: Math.floor(Date.now() / 1000),
712
+ lastError: errMessage,
713
+ ...(opts.attributes ? { attributes: opts.attributes } : {}),
714
+ };
715
+ }
716
+ const documentName = current.response?.documentName;
717
+ if (!documentName) {
718
+ // Op done, no error, no documentName — surface as completed without
719
+ // follow-up details rather than failing.
720
+ return {
721
+ id: current.name ?? `${storeId}/documents/unknown-${Date.now()}`,
722
+ vectorStoreId: storeId,
723
+ status: 'completed',
724
+ createdAt: Math.floor(Date.now() / 1000),
725
+ ...(opts.attributes ? { attributes: opts.attributes } : {}),
726
+ };
727
+ }
728
+ // Follow up with documents.get to surface real createdAt + sizeBytes.
729
+ // Best-effort: if the get fails (rare race), fall back to the op data.
730
+ try {
731
+ const doc = await client.fileSearchStores.documents.get({ name: documentName });
732
+ const info = fromGeminiDocument(doc, storeId);
733
+ if (opts.attributes && !info.attributes)
734
+ info.attributes = opts.attributes;
735
+ return info;
736
+ }
737
+ catch {
738
+ return {
739
+ id: documentName,
740
+ vectorStoreId: storeId,
741
+ status: 'completed',
742
+ createdAt: Math.floor(Date.now() / 1000),
743
+ ...(opts.attributes ? { attributes: opts.attributes } : {}),
744
+ };
745
+ }
746
+ }
747
+ /**
748
+ * Map a Gemini `FileSearchStore` resource into the framework's
749
+ * `VectorStoreInfo` shape. `displayNameOverride` lets `create()` populate
750
+ * the human-friendly name from the user-supplied value when the API
751
+ * response omits it (some response variants do).
752
+ *
753
+ * @internal
754
+ */
755
+ export function fromGeminiFileSearchStore(raw, displayNameOverride) {
756
+ const r = raw;
757
+ const id = r.name ?? '';
758
+ const active = Number(r.activeDocumentsCount ?? 0) || 0;
759
+ const pending = Number(r.pendingDocumentsCount ?? 0) || 0;
760
+ const result = {
761
+ id,
762
+ name: r.displayName ?? displayNameOverride ?? id,
763
+ createdAt: r.createTime ? Math.floor(Date.parse(r.createTime) / 1000) : Math.floor(Date.now() / 1000),
764
+ fileCount: active + pending,
765
+ };
766
+ if (r.sizeBytes !== undefined) {
767
+ const bytes = Number(r.sizeBytes);
768
+ if (Number.isFinite(bytes))
769
+ result.bytesUsed = bytes;
770
+ }
771
+ return result;
772
+ }
773
+ /**
774
+ * Map a Gemini `Document` resource into the framework's
775
+ * `VectorStoreFileInfo` shape. `DocumentState` enum values flatten to the
776
+ * shared `'in_progress' | 'completed' | 'failed' | 'cancelled'` union.
777
+ *
778
+ * @internal
779
+ */
780
+ export function fromGeminiDocument(raw, storeId) {
781
+ const r = raw;
782
+ const status = mapGeminiDocumentState(r.state);
783
+ const result = {
784
+ id: r.name ?? `${storeId}/documents/unknown`,
785
+ vectorStoreId: storeId,
786
+ status,
787
+ createdAt: r.createTime ? Math.floor(Date.parse(r.createTime) / 1000) : Math.floor(Date.now() / 1000),
788
+ };
789
+ if (r.sizeBytes !== undefined) {
790
+ const bytes = Number(r.sizeBytes);
791
+ if (Number.isFinite(bytes))
792
+ result.bytes = bytes;
793
+ }
794
+ if (r.customMetadata && r.customMetadata.length > 0) {
795
+ result.attributes = customMetadataToAttributes(r.customMetadata);
796
+ }
797
+ return result;
798
+ }
799
+ function mapGeminiDocumentState(state) {
800
+ switch (state) {
801
+ case 'STATE_ACTIVE': return 'completed';
802
+ case 'STATE_FAILED': return 'failed';
803
+ case 'STATE_PENDING': return 'in_progress';
804
+ default: return 'in_progress';
805
+ }
806
+ }
807
+ /**
808
+ * Convert the framework's flat attribute map to Gemini's `CustomMetadata`
809
+ * array shape. Strings → `stringValue`, numbers → `numericValue`,
810
+ * booleans → `stringValue: 'true' | 'false'` (Gemini has no boolean
811
+ * variant — string is the safe lossless choice; filter-builders can
812
+ * still match on `key = "true"`).
813
+ *
814
+ * @internal
815
+ */
816
+ export function attributesToCustomMetadata(attrs) {
817
+ return Object.entries(attrs).map(([key, value]) => {
818
+ if (typeof value === 'number')
819
+ return { key, numericValue: value };
820
+ if (typeof value === 'boolean')
821
+ return { key, stringValue: value ? 'true' : 'false' };
822
+ return { key, stringValue: value };
823
+ });
824
+ }
825
+ /**
826
+ * Inverse of {@link attributesToCustomMetadata}. Drops `stringListValue`
827
+ * variants (no flat-attribute representation; apps that need lists
828
+ * should read the raw Document via the SDK).
829
+ *
830
+ * @internal
831
+ */
832
+ export function customMetadataToAttributes(metadata) {
833
+ const out = {};
834
+ for (const entry of metadata) {
835
+ if (!entry.key)
836
+ continue;
837
+ if (entry.numericValue !== undefined)
838
+ out[entry.key] = entry.numericValue;
839
+ else if (entry.stringValue !== undefined) {
840
+ // Round-trip booleans encoded by attributesToCustomMetadata.
841
+ if (entry.stringValue === 'true')
842
+ out[entry.key] = true;
843
+ else if (entry.stringValue === 'false')
844
+ out[entry.key] = false;
845
+ else
846
+ out[entry.key] = entry.stringValue;
847
+ }
848
+ // stringListValue intentionally dropped.
849
+ }
850
+ return out;
851
+ }
852
+ function sleep(ms) {
853
+ return new Promise(resolve => setTimeout(resolve, ms));
854
+ }
855
+ /**
856
+ * Best-effort MIME type from a filename extension. Gemini's
857
+ * `uploadToFileSearchStore` requires a mimeType on Blob uploads (it
858
+ * reads `blob.type`, which is empty on untyped `new Blob([data])`).
859
+ *
860
+ * Coverage matches Gemini's supported FileSearchStore document formats.
861
+ * Unknown extensions return `''` — the caller drops the field so the
862
+ * Gemini SDK's own error fires loudly rather than silently picking a
863
+ * wrong type.
864
+ *
865
+ * @internal
866
+ */
867
+ export function mimeTypeFromFilename(filename) {
868
+ const ext = filename.toLowerCase().split('.').pop() ?? '';
869
+ switch (ext) {
870
+ case 'txt': return 'text/plain';
871
+ case 'md': return 'text/markdown';
872
+ case 'pdf': return 'application/pdf';
873
+ case 'html':
874
+ case 'htm': return 'text/html';
875
+ case 'json': return 'application/json';
876
+ case 'csv': return 'text/csv';
877
+ case 'tsv': return 'text/tab-separated-values';
878
+ case 'xml': return 'application/xml';
879
+ case 'rtf': return 'application/rtf';
880
+ case 'doc': return 'application/msword';
881
+ case 'docx': return 'application/vnd.openxmlformats-officedocument.wordprocessingml.document';
882
+ case 'js': return 'text/javascript';
883
+ case 'ts': return 'text/x-typescript';
884
+ case 'py': return 'text/x-python';
885
+ default: return '';
886
+ }
887
+ }
405
888
  //# sourceMappingURL=google.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"google.js","sourceRoot":"","sources":["../../src/providers/google.ts"],"names":[],"mappings":"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"}
@@ -1,8 +1,13 @@
1
- import type { ProviderFactory, ProviderAdapter, EmbeddingAdapter, ImageGenerationAdapter, TextToSpeechAdapter, SpeechToTextAdapter, FileAdapter, ProviderRequestOptions, ProviderResponse, StreamChunk, CacheableMarkers } from '../types.js';
1
+ import type { ProviderFactory, ProviderAdapter, EmbeddingAdapter, ImageGenerationAdapter, TextToSpeechAdapter, SpeechToTextAdapter, FileAdapter, ProviderRequestOptions, ProviderResponse, StreamChunk, ToolDefinitionSchema, CacheableMarkers, VectorStoreAdapter } from '../types.js';
2
2
  export interface OpenAIConfig {
3
3
  apiKey: string;
4
4
  baseUrl?: string | undefined;
5
5
  organization?: string | undefined;
6
+ /**
7
+ * Extra headers to send with every request. Used by OpenAI-compatible
8
+ * derivatives — OpenRouter sends `HTTP-Referer` and `X-Title` for analytics.
9
+ */
10
+ defaultHeaders?: Record<string, string> | undefined;
6
11
  }
7
12
  export declare class OpenAIProvider implements ProviderFactory {
8
13
  readonly name = "openai";
@@ -14,6 +19,7 @@ export declare class OpenAIProvider implements ProviderFactory {
14
19
  createTts(model: string): TextToSpeechAdapter;
15
20
  createStt(model: string): SpeechToTextAdapter;
16
21
  createFiles(): FileAdapter;
22
+ createVectorStores(): VectorStoreAdapter;
17
23
  }
18
24
  export declare class OpenAIAdapter implements ProviderAdapter {
19
25
  private readonly config;
@@ -24,6 +30,7 @@ export declare class OpenAIAdapter implements ProviderAdapter {
24
30
  generate(options: ProviderRequestOptions): Promise<ProviderResponse>;
25
31
  stream(options: ProviderRequestOptions): AsyncIterable<StreamChunk>;
26
32
  }
33
+ export declare function toOpenAITools(tools: ToolDefinitionSchema[]): unknown[];
27
34
  /**
28
35
  * Build a stable `prompt_cache_key` from the regions the agent marked as
29
36
  * cacheable. Returns `undefined` if no markers apply (request goes out