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