@tanstack/ai-gemini 0.20.1 → 0.22.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 (70) hide show
  1. package/README.md +15 -1
  2. package/dist/esm/adapters/audio.js +113 -61
  3. package/dist/esm/adapters/audio.js.map +1 -1
  4. package/dist/esm/adapters/embedding.d.ts +77 -0
  5. package/dist/esm/adapters/embedding.js +119 -0
  6. package/dist/esm/adapters/embedding.js.map +1 -0
  7. package/dist/esm/adapters/image.js +224 -225
  8. package/dist/esm/adapters/image.js.map +1 -1
  9. package/dist/esm/adapters/summarize.js +33 -12
  10. package/dist/esm/adapters/summarize.js.map +1 -1
  11. package/dist/esm/adapters/text.js +574 -650
  12. package/dist/esm/adapters/text.js.map +1 -1
  13. package/dist/esm/adapters/tts.js +197 -178
  14. package/dist/esm/adapters/tts.js.map +1 -1
  15. package/dist/esm/adapters/video.js +456 -409
  16. package/dist/esm/adapters/video.js.map +1 -1
  17. package/dist/esm/embedding/embedding-provider-options.d.ts +20 -0
  18. package/dist/esm/experimental/index.js +1 -6
  19. package/dist/esm/experimental/text-interactions/adapter.js +877 -1014
  20. package/dist/esm/experimental/text-interactions/adapter.js.map +1 -1
  21. package/dist/esm/image/image-provider-options.js +74 -54
  22. package/dist/esm/image/image-provider-options.js.map +1 -1
  23. package/dist/esm/index.d.ts +4 -1
  24. package/dist/esm/index.js +5 -36
  25. package/dist/esm/model-meta.d.ts +72 -5
  26. package/dist/esm/model-meta.js +737 -129
  27. package/dist/esm/model-meta.js.map +1 -1
  28. package/dist/esm/realtime/adapter.js +242 -228
  29. package/dist/esm/realtime/adapter.js.map +1 -1
  30. package/dist/esm/realtime/client.js +314 -381
  31. package/dist/esm/realtime/client.js.map +1 -1
  32. package/dist/esm/realtime/index.js +3 -0
  33. package/dist/esm/realtime/token.js +50 -36
  34. package/dist/esm/realtime/token.js.map +1 -1
  35. package/dist/esm/realtime/utils.js +202 -245
  36. package/dist/esm/realtime/utils.js.map +1 -1
  37. package/dist/esm/tools/code-execution-tool.js +11 -13
  38. package/dist/esm/tools/code-execution-tool.js.map +1 -1
  39. package/dist/esm/tools/computer-use-tool.js +18 -28
  40. package/dist/esm/tools/computer-use-tool.js.map +1 -1
  41. package/dist/esm/tools/file-search-tool.js +11 -14
  42. package/dist/esm/tools/file-search-tool.js.map +1 -1
  43. package/dist/esm/tools/function-declaration-tool.js +11 -25
  44. package/dist/esm/tools/function-declaration-tool.js.map +1 -1
  45. package/dist/esm/tools/google-maps-tool.js +11 -14
  46. package/dist/esm/tools/google-maps-tool.js.map +1 -1
  47. package/dist/esm/tools/google-search-retriveal-tool.js +11 -14
  48. package/dist/esm/tools/google-search-retriveal-tool.js.map +1 -1
  49. package/dist/esm/tools/google-search-tool.js +11 -14
  50. package/dist/esm/tools/google-search-tool.js.map +1 -1
  51. package/dist/esm/tools/index.js +2 -13
  52. package/dist/esm/tools/tool-converter.js +64 -57
  53. package/dist/esm/tools/tool-converter.js.map +1 -1
  54. package/dist/esm/tools/url-context-tool.js +11 -13
  55. package/dist/esm/tools/url-context-tool.js.map +1 -1
  56. package/dist/esm/usage.js +81 -87
  57. package/dist/esm/usage.js.map +1 -1
  58. package/dist/esm/utils/client.js +31 -24
  59. package/dist/esm/utils/client.js.map +1 -1
  60. package/dist/esm/utils/index.js +2 -0
  61. package/dist/esm/video/video-provider-options.js +73 -20
  62. package/dist/esm/video/video-provider-options.js.map +1 -1
  63. package/package.json +7 -7
  64. package/src/adapters/embedding.ts +173 -0
  65. package/src/embedding/embedding-provider-options.ts +29 -0
  66. package/src/index.ts +13 -0
  67. package/src/model-meta.ts +143 -10
  68. package/dist/esm/experimental/index.js.map +0 -1
  69. package/dist/esm/index.js.map +0 -1
  70. package/dist/esm/tools/index.js.map +0 -1
package/dist/esm/index.js CHANGED
@@ -1,44 +1,13 @@
1
+ import { GEMINI_AUDIO_MODELS, GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS, GEMINI_EMBEDDING_MODELS, GEMINI_IMAGE_MODELS, GEMINI_INTERACTIONS_VIDEO_MODELS, GEMINI_MODELS, GEMINI_TTS_MODELS, GEMINI_TTS_VOICES, GEMINI_VIDEO_MODELS } from "./model-meta.js";
1
2
  import { GeminiTextAdapter, createGeminiChat, geminiText } from "./adapters/text.js";
2
3
  import { createGeminiSummarize, geminiSummarize } from "./adapters/summarize.js";
3
4
  import { GeminiImageAdapter, createGeminiImage, geminiImage } from "./adapters/image.js";
5
+ import { GeminiEmbeddingAdapter, createGeminiEmbedding, geminiEmbedding } from "./adapters/embedding.js";
4
6
  import { GeminiTTSAdapter, createGeminiSpeech, geminiSpeech } from "./adapters/tts.js";
5
7
  import { GeminiAudioAdapter, createGeminiAudio, geminiAudio } from "./adapters/audio.js";
6
- import { GeminiVideoAdapter, createGeminiVideo, geminiVideo } from "./adapters/video.js";
7
8
  import { GEMINI_VIDEO_DURATIONS, getGeminiVideoDurationOptions, isInteractionsVideoModel } from "./video/video-provider-options.js";
8
- import { GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS, GEMINI_MODELS, GEMINI_AUDIO_MODELS, GEMINI_IMAGE_MODELS, GEMINI_INTERACTIONS_VIDEO_MODELS, GEMINI_TTS_MODELS, GEMINI_TTS_VOICES, GEMINI_MODELS as GEMINI_MODELS2, GEMINI_VIDEO_MODELS } from "./model-meta.js";
9
+ import { GeminiVideoAdapter, createGeminiVideo, geminiVideo } from "./adapters/video.js";
9
10
  import { geminiRealtimeToken } from "./realtime/token.js";
10
11
  import { geminiRealtime } from "./realtime/adapter.js";
11
- export {
12
- GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS,
13
- GEMINI_MODELS,
14
- GEMINI_VIDEO_DURATIONS,
15
- GeminiAudioAdapter,
16
- GEMINI_AUDIO_MODELS as GeminiAudioModels,
17
- GeminiImageAdapter,
18
- GEMINI_IMAGE_MODELS as GeminiImageModels,
19
- GEMINI_INTERACTIONS_VIDEO_MODELS as GeminiInteractionsVideoModels,
20
- GeminiTTSAdapter,
21
- GEMINI_TTS_MODELS as GeminiTTSModels,
22
- GEMINI_TTS_VOICES as GeminiTTSVoices,
23
- GeminiTextAdapter,
24
- GEMINI_MODELS2 as GeminiTextModels,
25
- GeminiVideoAdapter,
26
- GEMINI_VIDEO_MODELS as GeminiVideoModels,
27
- createGeminiAudio,
28
- createGeminiChat,
29
- createGeminiImage,
30
- createGeminiSpeech,
31
- createGeminiSummarize,
32
- createGeminiVideo,
33
- geminiAudio,
34
- geminiImage,
35
- geminiRealtime,
36
- geminiRealtimeToken,
37
- geminiSpeech,
38
- geminiSummarize,
39
- geminiText,
40
- geminiVideo,
41
- getGeminiVideoDurationOptions,
42
- isInteractionsVideoModel
43
- };
44
- //# sourceMappingURL=index.js.map
12
+ import "./realtime/index.js";
13
+ export { GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS, GEMINI_EMBEDDING_MODELS, GEMINI_MODELS, GEMINI_VIDEO_DURATIONS, GeminiAudioAdapter, GEMINI_AUDIO_MODELS as GeminiAudioModels, GeminiEmbeddingAdapter, GeminiImageAdapter, GEMINI_IMAGE_MODELS as GeminiImageModels, GEMINI_INTERACTIONS_VIDEO_MODELS as GeminiInteractionsVideoModels, GeminiTTSAdapter, GEMINI_TTS_MODELS as GeminiTTSModels, GEMINI_TTS_VOICES as GeminiTTSVoices, GeminiTextAdapter, GEMINI_MODELS as GeminiTextModels, GeminiVideoAdapter, GEMINI_VIDEO_MODELS as GeminiVideoModels, createGeminiAudio, createGeminiChat, createGeminiEmbedding, createGeminiImage, createGeminiSpeech, createGeminiSummarize, createGeminiVideo, geminiAudio, geminiEmbedding, geminiImage, geminiRealtime, geminiRealtimeToken, geminiSpeech, geminiSummarize, geminiText, geminiVideo, getGeminiVideoDurationOptions, isInteractionsVideoModel };
@@ -1,4 +1,5 @@
1
1
  import { GeminiCachedContentOptions, GeminiCommonConfigOptions, GeminiSafetyOptions, GeminiStructuredOutputOptions, GeminiThinkingOptions, GeminiToolConfigOptions } from './text/text-provider-options.js';
2
+ import { GeminiEmbeddingProviderOptions } from './embedding/embedding-provider-options.js';
2
3
  declare const GEMINI_3_1_PRO: {
3
4
  readonly name: "gemini-3.1-pro-preview";
4
5
  readonly max_input_tokens: 1048576;
@@ -139,6 +140,27 @@ declare const GEMINI_2_5_FLASH_LITE: {
139
140
  };
140
141
  };
141
142
  };
143
+ declare const GEMINI_3_6_FLASH: {
144
+ readonly name: "gemini-3.6-flash";
145
+ readonly max_input_tokens: 1048576;
146
+ readonly max_output_tokens: 65536;
147
+ readonly knowledge_cutoff: "2026-03-01";
148
+ readonly supports: {
149
+ readonly input: ["text", "image", "video", "audio", "document"];
150
+ readonly output: ["text"];
151
+ readonly capabilities: ["batch_api", "caching", "function_calling", "structured_output", "thinking"];
152
+ readonly tools: ["code_execution", "file_search", "google_search", "google_maps", "url_context", "computer_use"];
153
+ };
154
+ readonly pricing: {
155
+ readonly input: {
156
+ readonly normal: 1.5;
157
+ readonly cached: 0.15;
158
+ };
159
+ readonly output: {
160
+ readonly normal: 7.5;
161
+ };
162
+ };
163
+ };
142
164
  declare const GEMINI_3_5_FLASH: {
143
165
  readonly name: "gemini-3.5-flash";
144
166
  readonly max_input_tokens: 1048576;
@@ -147,7 +169,7 @@ declare const GEMINI_3_5_FLASH: {
147
169
  readonly input: ["text", "image", "video", "document", "audio"];
148
170
  readonly output: ["text"];
149
171
  readonly capabilities: ["batch_api", "caching", "function_calling", "structured_output", "thinking"];
150
- readonly tools: ["code_execution", "file_search", "google_search", "url_context"];
172
+ readonly tools: ["code_execution", "file_search", "google_search", "google_maps", "url_context", "computer_use"];
151
173
  };
152
174
  readonly pricing: {
153
175
  readonly input: {
@@ -159,7 +181,28 @@ declare const GEMINI_3_5_FLASH: {
159
181
  };
160
182
  };
161
183
  };
162
- export declare const GEMINI_MODELS: readonly ["gemini-3.5-flash", "gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-3.1-flash-lite", "gemini-3.1-flash-lite-preview", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite"];
184
+ declare const GEMINI_3_5_FLASH_LITE: {
185
+ readonly name: "gemini-3.5-flash-lite";
186
+ readonly max_input_tokens: 1048576;
187
+ readonly max_output_tokens: 65536;
188
+ readonly knowledge_cutoff: "2025-01-01";
189
+ readonly supports: {
190
+ readonly input: ["text", "image", "video", "audio", "document"];
191
+ readonly output: ["text"];
192
+ readonly capabilities: ["batch_api", "caching", "function_calling", "structured_output", "thinking"];
193
+ readonly tools: ["code_execution", "file_search", "google_search", "google_maps", "url_context"];
194
+ };
195
+ readonly pricing: {
196
+ readonly input: {
197
+ readonly normal: 0.3;
198
+ readonly cached: 0.03;
199
+ };
200
+ readonly output: {
201
+ readonly normal: 2.5;
202
+ };
203
+ };
204
+ };
205
+ export declare const GEMINI_MODELS: readonly ["gemini-3.6-flash", "gemini-3.5-flash", "gemini-3.5-flash-lite", "gemini-3.1-pro-preview", "gemini-3-flash-preview", "gemini-3.1-flash-lite", "gemini-3.1-flash-lite-preview", "gemini-2.5-pro", "gemini-2.5-flash", "gemini-2.5-flash-lite"];
163
206
  /**
164
207
  * Gemini models that support combining `tools` + `responseSchema` in a
165
208
  * single streaming `generateContent` call (per issue #605). Per the
@@ -200,7 +243,28 @@ export declare const GEMINI_VIDEO_MODELS: readonly ["veo-3.1-generate-preview",
200
243
  * @experimental Omni video generation is an experimental feature and may change.
201
244
  */
202
245
  export declare const GEMINI_INTERACTIONS_VIDEO_MODELS: readonly ["gemini-omni-flash-preview"];
246
+ /**
247
+ * Embedding models
248
+ */
249
+ export declare const GEMINI_EMBEDDING_MODELS: readonly ["gemini-embedding-001"];
250
+ export type GeminiEmbeddingModel = (typeof GEMINI_EMBEDDING_MODELS)[number];
251
+ /**
252
+ * Type-only map from embedding model name to its provider options type.
253
+ */
254
+ export type GeminiEmbeddingModelProviderOptionsByName = {
255
+ 'gemini-embedding-001': GeminiEmbeddingProviderOptions;
256
+ };
257
+ /**
258
+ * Per-model input modalities for embedding models. Gemini embedding models
259
+ * are text-only, so image inputs fail at compile time.
260
+ */
261
+ export type GeminiEmbeddingModelInputModalitiesByName = {
262
+ 'gemini-embedding-001': readonly ['text'];
263
+ };
203
264
  export type GeminiChatModelProviderOptionsByName = {
265
+ [GEMINI_3_6_FLASH.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
266
+ [GEMINI_3_5_FLASH.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
267
+ [GEMINI_3_5_FLASH_LITE.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
204
268
  [GEMINI_3_1_PRO.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
205
269
  [GEMINI_3_FLASH.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
206
270
  [GEMINI_3_1_FLASH_LITE.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
@@ -208,13 +272,15 @@ export type GeminiChatModelProviderOptionsByName = {
208
272
  [GEMINI_2_5_PRO.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
209
273
  [GEMINI_2_5_FLASH.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
210
274
  [GEMINI_2_5_FLASH_LITE.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
211
- [GEMINI_3_5_FLASH.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
212
275
  };
213
276
  /**
214
277
  * Type-only map from chat model name to its supported tool capabilities.
215
278
  * Based on the 'supports.tools' arrays defined for each model.
216
279
  */
217
280
  export type GeminiChatModelToolCapabilitiesByName = {
281
+ [GEMINI_3_6_FLASH.name]: typeof GEMINI_3_6_FLASH.supports.tools;
282
+ [GEMINI_3_5_FLASH.name]: typeof GEMINI_3_5_FLASH.supports.tools;
283
+ [GEMINI_3_5_FLASH_LITE.name]: typeof GEMINI_3_5_FLASH_LITE.supports.tools;
218
284
  [GEMINI_3_1_PRO.name]: typeof GEMINI_3_1_PRO.supports.tools;
219
285
  [GEMINI_3_FLASH.name]: typeof GEMINI_3_FLASH.supports.tools;
220
286
  [GEMINI_3_1_FLASH_LITE.name]: typeof GEMINI_3_1_FLASH_LITE.supports.tools;
@@ -222,7 +288,6 @@ export type GeminiChatModelToolCapabilitiesByName = {
222
288
  [GEMINI_2_5_PRO.name]: typeof GEMINI_2_5_PRO.supports.tools;
223
289
  [GEMINI_2_5_FLASH.name]: typeof GEMINI_2_5_FLASH.supports.tools;
224
290
  [GEMINI_2_5_FLASH_LITE.name]: typeof GEMINI_2_5_FLASH_LITE.supports.tools;
225
- [GEMINI_3_5_FLASH.name]: typeof GEMINI_3_5_FLASH.supports.tools;
226
291
  };
227
292
  /**
228
293
  * Type-only map from chat model name to its supported input modalities.
@@ -238,13 +303,15 @@ export type GeminiChatModelToolCapabilitiesByName = {
238
303
  * @see https://ai.google.dev/gemini-api/docs/document-processing
239
304
  */
240
305
  export type GeminiModelInputModalitiesByName = {
306
+ [GEMINI_3_6_FLASH.name]: typeof GEMINI_3_6_FLASH.supports.input;
307
+ [GEMINI_3_5_FLASH.name]: typeof GEMINI_3_5_FLASH.supports.input;
308
+ [GEMINI_3_5_FLASH_LITE.name]: typeof GEMINI_3_5_FLASH_LITE.supports.input;
241
309
  [GEMINI_3_1_PRO.name]: typeof GEMINI_3_1_PRO.supports.input;
242
310
  [GEMINI_3_FLASH.name]: typeof GEMINI_3_FLASH.supports.input;
243
311
  [GEMINI_3_1_FLASH_LITE.name]: typeof GEMINI_3_1_FLASH_LITE.supports.input;
244
312
  [GEMINI_3_1_FLASH_LITE_PREVIEW.name]: typeof GEMINI_3_1_FLASH_LITE_PREVIEW.supports.input;
245
313
  [GEMINI_2_5_PRO.name]: typeof GEMINI_2_5_PRO.supports.input;
246
314
  [GEMINI_2_5_FLASH_LITE.name]: typeof GEMINI_2_5_FLASH_LITE.supports.input;
247
- [GEMINI_3_5_FLASH.name]: typeof GEMINI_3_5_FLASH.supports.input;
248
315
  [GEMINI_2_5_FLASH.name]: typeof GEMINI_2_5_FLASH.supports.input;
249
316
  };
250
317
  export {};