@tanstack/ai-gemini 0.18.1 → 0.18.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/esm/adapters/audio.d.ts +92 -0
- package/dist/esm/adapters/audio.js +66 -0
- package/dist/esm/adapters/audio.js.map +1 -0
- package/dist/esm/adapters/image.d.ts +101 -0
- package/dist/esm/adapters/image.js +253 -0
- package/dist/esm/adapters/image.js.map +1 -0
- package/dist/esm/adapters/summarize.d.ts +33 -0
- package/dist/esm/adapters/summarize.js +18 -0
- package/dist/esm/adapters/summarize.js.map +1 -0
- package/dist/esm/adapters/text.d.ts +85 -0
- package/dist/esm/adapters/text.js +658 -0
- package/dist/esm/adapters/text.js.map +1 -0
- package/dist/esm/adapters/tts.d.ts +165 -0
- package/dist/esm/adapters/tts.js +192 -0
- package/dist/esm/adapters/tts.js.map +1 -0
- package/dist/esm/adapters/video.d.ts +108 -0
- package/dist/esm/adapters/video.js +227 -0
- package/dist/esm/adapters/video.js.map +1 -0
- package/dist/esm/experimental/index.d.ts +6 -0
- package/dist/esm/experimental/index.js +7 -0
- package/dist/esm/experimental/index.js.map +1 -0
- package/dist/esm/experimental/text-interactions/adapter.d.ts +75 -0
- package/dist/esm/experimental/text-interactions/adapter.js +1052 -0
- package/dist/esm/experimental/text-interactions/adapter.js.map +1 -0
- package/dist/esm/experimental/text-interactions/events.d.ts +147 -0
- package/dist/esm/experimental/text-interactions/provider-options.d.ts +15 -0
- package/dist/esm/image/image-provider-options.d.ts +181 -0
- package/dist/esm/image/image-provider-options.js +67 -0
- package/dist/esm/image/image-provider-options.js.map +1 -0
- package/dist/esm/index.d.ts +33 -0
- package/dist/esm/index.js +38 -0
- package/dist/esm/index.js.map +1 -0
- package/dist/esm/message-types.d.ts +104 -0
- package/dist/esm/model-meta.d.ts +242 -0
- package/dist/esm/model-meta.js +159 -0
- package/dist/esm/model-meta.js.map +1 -0
- package/dist/esm/text/text-provider-options.d.ts +196 -0
- package/dist/esm/tools/code-execution-tool.d.ts +10 -0
- package/dist/esm/tools/code-execution-tool.js +18 -0
- package/dist/esm/tools/code-execution-tool.js.map +1 -0
- package/dist/esm/tools/computer-use-tool.d.ts +13 -0
- package/dist/esm/tools/computer-use-tool.js +33 -0
- package/dist/esm/tools/computer-use-tool.js.map +1 -0
- package/dist/esm/tools/file-search-tool.d.ts +10 -0
- package/dist/esm/tools/file-search-tool.js +19 -0
- package/dist/esm/tools/file-search-tool.js.map +1 -0
- package/dist/esm/tools/function-declaration-tool.d.ts +5 -0
- package/dist/esm/tools/function-declaration-tool.js +28 -0
- package/dist/esm/tools/function-declaration-tool.js.map +1 -0
- package/dist/esm/tools/google-maps-tool.d.ts +10 -0
- package/dist/esm/tools/google-maps-tool.js +19 -0
- package/dist/esm/tools/google-maps-tool.js.map +1 -0
- package/dist/esm/tools/google-search-retriveal-tool.d.ts +10 -0
- package/dist/esm/tools/google-search-retriveal-tool.js +19 -0
- package/dist/esm/tools/google-search-retriveal-tool.js.map +1 -0
- package/dist/esm/tools/google-search-tool.d.ts +10 -0
- package/dist/esm/tools/google-search-tool.js +19 -0
- package/dist/esm/tools/google-search-tool.js.map +1 -0
- package/dist/esm/tools/index.d.ts +18 -0
- package/dist/esm/tools/index.js +21 -0
- package/dist/esm/tools/index.js.map +1 -0
- package/dist/esm/tools/tool-converter.d.ts +22 -0
- package/dist/esm/tools/tool-converter.js +66 -0
- package/dist/esm/tools/tool-converter.js.map +1 -0
- package/dist/esm/tools/url-context-tool.d.ts +10 -0
- package/dist/esm/tools/url-context-tool.js +18 -0
- package/dist/esm/tools/url-context-tool.js.map +1 -0
- package/dist/esm/usage.d.ts +67 -0
- package/dist/esm/usage.js +94 -0
- package/dist/esm/usage.js.map +1 -0
- package/dist/esm/utils/client.d.ts +17 -0
- package/dist/esm/utils/client.js +30 -0
- package/dist/esm/utils/client.js.map +1 -0
- package/dist/esm/utils/index.d.ts +1 -0
- package/dist/esm/video/video-provider-options.d.ts +90 -0
- package/dist/esm/video/video-provider-options.js +15 -0
- package/dist/esm/video/video-provider-options.js.map +1 -0
- package/package.json +4 -4
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
export { GeminiTextAdapter, createGeminiChat, geminiText, type GeminiTextConfig, type GeminiTextProviderOptions, } from './adapters/text.js';
|
|
2
|
+
export { createGeminiSummarize, geminiSummarize, type GeminiSummarizeConfig, type GeminiSummarizeModel, } from './adapters/summarize.js';
|
|
3
|
+
export { GeminiImageAdapter, createGeminiImage, geminiImage, type GeminiImageConfig, } from './adapters/image.js';
|
|
4
|
+
export type { GeminiImageProviderOptions, GeminiImageModelProviderOptionsByName, GeminiAspectRatio, PersonGeneration, SafetyFilterLevel, ImagePromptLanguage, } from './image/image-provider-options.js';
|
|
5
|
+
/**
|
|
6
|
+
* @experimental Gemini TTS is an experimental feature and may change.
|
|
7
|
+
*/
|
|
8
|
+
export { GeminiTTSAdapter, createGeminiSpeech, geminiSpeech, type GeminiTTSConfig, type GeminiTTSProviderOptions, } from './adapters/tts.js';
|
|
9
|
+
/**
|
|
10
|
+
* @experimental Gemini Lyria music generation is an experimental feature and may change.
|
|
11
|
+
*/
|
|
12
|
+
export { GeminiAudioAdapter, createGeminiAudio, geminiAudio, type GeminiAudioConfig, type GeminiAudioModel, type GeminiAudioProviderOptions, } from './adapters/audio.js';
|
|
13
|
+
/**
|
|
14
|
+
* @experimental Veo video generation is an experimental feature and may change.
|
|
15
|
+
*/
|
|
16
|
+
export { GeminiVideoAdapter, createGeminiVideo, geminiVideo, type GeminiVideoConfig, } from './adapters/video.js';
|
|
17
|
+
export { GEMINI_VIDEO_DURATIONS, getGeminiVideoDurationOptions, } from './video/video-provider-options.js';
|
|
18
|
+
export type { GeminiVideoModel, GeminiVideoModelDurationByName, GeminiVideoModelInputModalitiesByName, GeminiVideoModelProviderOptionsByName, GeminiVideoModelSizeByName, GeminiVideoProviderOptions, GeminiVideoSize, } from './video/video-provider-options.js';
|
|
19
|
+
export { GEMINI_MODELS, GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS, } from './model-meta.js';
|
|
20
|
+
export { GEMINI_MODELS as GeminiTextModels } from './model-meta.js';
|
|
21
|
+
export { GEMINI_IMAGE_MODELS as GeminiImageModels } from './model-meta.js';
|
|
22
|
+
export { GEMINI_TTS_MODELS as GeminiTTSModels } from './model-meta.js';
|
|
23
|
+
export { GEMINI_TTS_VOICES as GeminiTTSVoices } from './model-meta.js';
|
|
24
|
+
export { GEMINI_AUDIO_MODELS as GeminiAudioModels } from './model-meta.js';
|
|
25
|
+
export { GEMINI_VIDEO_MODELS as GeminiVideoModels } from './model-meta.js';
|
|
26
|
+
export type { GeminiModels as GeminiTextModel } from './model-meta.js';
|
|
27
|
+
export type { GeminiImageModels as GeminiImageModel } from './model-meta.js';
|
|
28
|
+
export type { GeminiTTSVoice } from './model-meta.js';
|
|
29
|
+
export type { GeminiChatModelProviderOptionsByName, GeminiChatModelToolCapabilitiesByName, GeminiModelInputModalitiesByName, } from './model-meta.js';
|
|
30
|
+
export type { GeminiStructuredOutputOptions, GeminiThinkingOptions, } from './text/text-provider-options.js';
|
|
31
|
+
export type { GoogleGeminiTool } from './tools/index.js';
|
|
32
|
+
export type { GeminiTextMetadata, GeminiImageMetadata, GeminiAudioMetadata, GeminiVideoMetadata, GeminiDocumentMetadata, GeminiMessageMetadataByModality, } from './message-types.js';
|
|
33
|
+
export type { GeminiProviderUsageDetails } from './usage.js';
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { GeminiTextAdapter, createGeminiChat, geminiText } from "./adapters/text.js";
|
|
2
|
+
import { createGeminiSummarize, geminiSummarize } from "./adapters/summarize.js";
|
|
3
|
+
import { GeminiImageAdapter, createGeminiImage, geminiImage } from "./adapters/image.js";
|
|
4
|
+
import { GeminiTTSAdapter, createGeminiSpeech, geminiSpeech } from "./adapters/tts.js";
|
|
5
|
+
import { GeminiAudioAdapter, createGeminiAudio, geminiAudio } from "./adapters/audio.js";
|
|
6
|
+
import { GeminiVideoAdapter, createGeminiVideo, geminiVideo } from "./adapters/video.js";
|
|
7
|
+
import { GEMINI_VIDEO_DURATIONS, getGeminiVideoDurationOptions } from "./video/video-provider-options.js";
|
|
8
|
+
import { GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS, GEMINI_MODELS, GEMINI_AUDIO_MODELS, GEMINI_IMAGE_MODELS, GEMINI_TTS_MODELS, GEMINI_TTS_VOICES, GEMINI_MODELS as GEMINI_MODELS2, GEMINI_VIDEO_MODELS } from "./model-meta.js";
|
|
9
|
+
export {
|
|
10
|
+
GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS,
|
|
11
|
+
GEMINI_MODELS,
|
|
12
|
+
GEMINI_VIDEO_DURATIONS,
|
|
13
|
+
GeminiAudioAdapter,
|
|
14
|
+
GEMINI_AUDIO_MODELS as GeminiAudioModels,
|
|
15
|
+
GeminiImageAdapter,
|
|
16
|
+
GEMINI_IMAGE_MODELS as GeminiImageModels,
|
|
17
|
+
GeminiTTSAdapter,
|
|
18
|
+
GEMINI_TTS_MODELS as GeminiTTSModels,
|
|
19
|
+
GEMINI_TTS_VOICES as GeminiTTSVoices,
|
|
20
|
+
GeminiTextAdapter,
|
|
21
|
+
GEMINI_MODELS2 as GeminiTextModels,
|
|
22
|
+
GeminiVideoAdapter,
|
|
23
|
+
GEMINI_VIDEO_MODELS as GeminiVideoModels,
|
|
24
|
+
createGeminiAudio,
|
|
25
|
+
createGeminiChat,
|
|
26
|
+
createGeminiImage,
|
|
27
|
+
createGeminiSpeech,
|
|
28
|
+
createGeminiSummarize,
|
|
29
|
+
createGeminiVideo,
|
|
30
|
+
geminiAudio,
|
|
31
|
+
geminiImage,
|
|
32
|
+
geminiSpeech,
|
|
33
|
+
geminiSummarize,
|
|
34
|
+
geminiText,
|
|
35
|
+
geminiVideo,
|
|
36
|
+
getGeminiVideoDurationOptions
|
|
37
|
+
};
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;"}
|
|
@@ -0,0 +1,104 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Gemini-specific metadata types for multimodal content parts.
|
|
3
|
+
* These types extend the base ContentPart metadata with Gemini-specific options.
|
|
4
|
+
*
|
|
5
|
+
* Gemini uses a unified approach where all media types share similar metadata structure.
|
|
6
|
+
*
|
|
7
|
+
* @see https://ai.google.dev/gemini-api/docs/vision
|
|
8
|
+
* @see https://ai.google.dev/gemini-api/docs/audio
|
|
9
|
+
* @see https://ai.google.dev/gemini-api/docs/document-processing
|
|
10
|
+
*/
|
|
11
|
+
/**
|
|
12
|
+
* Supported image MIME types for Gemini.
|
|
13
|
+
*/
|
|
14
|
+
export type GeminiImageMimeType = 'image/png' | 'image/jpeg' | 'image/webp' | 'image/heic' | 'image/heif';
|
|
15
|
+
/**
|
|
16
|
+
* Supported audio MIME types for Gemini.
|
|
17
|
+
*/
|
|
18
|
+
export type GeminiAudioMimeType = 'audio/wav' | 'audio/mp3' | 'audio/aiff' | 'audio/aac' | 'audio/ogg' | 'audio/flac';
|
|
19
|
+
/**
|
|
20
|
+
* Supported video MIME types for Gemini.
|
|
21
|
+
*/
|
|
22
|
+
export type GeminiVideoMimeType = 'video/mp4' | 'video/mpeg' | 'video/mov' | 'video/avi' | 'video/x-flv' | 'video/mpg' | 'video/webm' | 'video/wmv' | 'video/3gpp';
|
|
23
|
+
/**
|
|
24
|
+
* Supported document MIME types for Gemini.
|
|
25
|
+
*/
|
|
26
|
+
export type GeminiDocumentMimeType = 'application/pdf' | 'text/plain' | 'text/html' | 'text/css' | 'text/javascript' | 'application/x-javascript' | 'text/x-typescript' | 'application/x-typescript' | 'text/csv' | 'text/markdown' | 'application/json' | 'application/xml';
|
|
27
|
+
/**
|
|
28
|
+
* Metadata for Gemini image content parts.
|
|
29
|
+
*/
|
|
30
|
+
export interface GeminiImageMetadata {
|
|
31
|
+
/**
|
|
32
|
+
* The MIME type of the image.
|
|
33
|
+
* Required for proper content processing.
|
|
34
|
+
*
|
|
35
|
+
* @see https://ai.google.dev/gemini-api/docs/vision#supported-formats
|
|
36
|
+
*/
|
|
37
|
+
mimeType?: GeminiImageMimeType;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Metadata for Gemini audio content parts.
|
|
41
|
+
*/
|
|
42
|
+
export interface GeminiAudioMetadata {
|
|
43
|
+
/**
|
|
44
|
+
* The MIME type of the audio.
|
|
45
|
+
* Required for proper content processing.
|
|
46
|
+
*
|
|
47
|
+
* @see https://ai.google.dev/gemini-api/docs/audio#supported-formats
|
|
48
|
+
*/
|
|
49
|
+
mimeType?: GeminiAudioMimeType;
|
|
50
|
+
}
|
|
51
|
+
/**
|
|
52
|
+
* Metadata for Gemini video content parts.
|
|
53
|
+
*/
|
|
54
|
+
export interface GeminiVideoMetadata {
|
|
55
|
+
/**
|
|
56
|
+
* The MIME type of the video.
|
|
57
|
+
* Required for proper content processing.
|
|
58
|
+
*
|
|
59
|
+
* @see https://ai.google.dev/gemini-api/docs/vision#video-requirements
|
|
60
|
+
*/
|
|
61
|
+
mimeType?: GeminiVideoMimeType;
|
|
62
|
+
}
|
|
63
|
+
/**
|
|
64
|
+
* Metadata for Gemini document content parts.
|
|
65
|
+
*/
|
|
66
|
+
export interface GeminiDocumentMetadata {
|
|
67
|
+
/**
|
|
68
|
+
* The MIME type of the document.
|
|
69
|
+
* Required for proper content processing.
|
|
70
|
+
*
|
|
71
|
+
* @see https://ai.google.dev/gemini-api/docs/document-processing
|
|
72
|
+
*/
|
|
73
|
+
mimeType?: GeminiDocumentMimeType;
|
|
74
|
+
}
|
|
75
|
+
/**
|
|
76
|
+
* Metadata for Gemini text content parts.
|
|
77
|
+
* Currently no specific metadata options for text in Gemini.
|
|
78
|
+
*/
|
|
79
|
+
export interface GeminiTextMetadata {
|
|
80
|
+
}
|
|
81
|
+
/**
|
|
82
|
+
* Map of modality types to their Gemini-specific metadata types.
|
|
83
|
+
* Used for type inference when constructing multimodal messages.
|
|
84
|
+
*/
|
|
85
|
+
export interface GeminiMessageMetadataByModality {
|
|
86
|
+
text: GeminiTextMetadata;
|
|
87
|
+
image: GeminiImageMetadata;
|
|
88
|
+
audio: GeminiAudioMetadata;
|
|
89
|
+
video: GeminiVideoMetadata;
|
|
90
|
+
document: GeminiDocumentMetadata;
|
|
91
|
+
}
|
|
92
|
+
/**
|
|
93
|
+
* Provider-specific metadata that round-trips with each Gemini tool call.
|
|
94
|
+
*
|
|
95
|
+
* `thoughtSignature` is emitted by Gemini 3.x (and 2.5 thinking) models on
|
|
96
|
+
* the Part containing the `functionCall`. The same signature must be echoed
|
|
97
|
+
* back at the Part level on the next turn or the API rejects the request
|
|
98
|
+
* with `400 INVALID_ARGUMENT: "Function call is missing a thought_signature"`.
|
|
99
|
+
*
|
|
100
|
+
* @see https://ai.google.dev/gemini-api/docs/thinking
|
|
101
|
+
*/
|
|
102
|
+
export interface GeminiToolCallMetadata {
|
|
103
|
+
thoughtSignature?: string;
|
|
104
|
+
}
|
|
@@ -0,0 +1,242 @@
|
|
|
1
|
+
import { GeminiCachedContentOptions, GeminiCommonConfigOptions, GeminiSafetyOptions, GeminiStructuredOutputOptions, GeminiThinkingOptions, GeminiToolConfigOptions } from './text/text-provider-options.js';
|
|
2
|
+
declare const GEMINI_3_1_PRO: {
|
|
3
|
+
readonly name: "gemini-3.1-pro-preview";
|
|
4
|
+
readonly max_input_tokens: 1048576;
|
|
5
|
+
readonly max_output_tokens: 65536;
|
|
6
|
+
readonly knowledge_cutoff: "2025-01-01";
|
|
7
|
+
readonly supports: {
|
|
8
|
+
readonly input: ["text", "image", "audio", "video", "document"];
|
|
9
|
+
readonly output: ["text"];
|
|
10
|
+
readonly capabilities: ["batch_api", "caching", "function_calling", "structured_output", "thinking"];
|
|
11
|
+
readonly tools: ["code_execution", "file_search", "google_search", "url_context"];
|
|
12
|
+
};
|
|
13
|
+
readonly pricing: {
|
|
14
|
+
readonly input: {
|
|
15
|
+
readonly normal: 2.5;
|
|
16
|
+
};
|
|
17
|
+
readonly output: {
|
|
18
|
+
readonly normal: 15;
|
|
19
|
+
};
|
|
20
|
+
};
|
|
21
|
+
};
|
|
22
|
+
declare const GEMINI_3_FLASH: {
|
|
23
|
+
readonly name: "gemini-3-flash-preview";
|
|
24
|
+
readonly max_input_tokens: 1048576;
|
|
25
|
+
readonly max_output_tokens: 65536;
|
|
26
|
+
readonly knowledge_cutoff: "2025-01-01";
|
|
27
|
+
readonly supports: {
|
|
28
|
+
readonly input: ["text", "image", "audio", "video", "document"];
|
|
29
|
+
readonly output: ["text"];
|
|
30
|
+
readonly capabilities: ["batch_api", "caching", "function_calling", "structured_output", "thinking"];
|
|
31
|
+
readonly tools: ["code_execution", "file_search", "google_search", "url_context"];
|
|
32
|
+
};
|
|
33
|
+
readonly pricing: {
|
|
34
|
+
readonly input: {
|
|
35
|
+
readonly normal: 0.5;
|
|
36
|
+
};
|
|
37
|
+
readonly output: {
|
|
38
|
+
readonly normal: 3;
|
|
39
|
+
};
|
|
40
|
+
};
|
|
41
|
+
};
|
|
42
|
+
declare const GEMINI_3_1_FLASH_LITE: {
|
|
43
|
+
readonly name: "gemini-3.1-flash-lite";
|
|
44
|
+
readonly max_input_tokens: 1048576;
|
|
45
|
+
readonly max_output_tokens: 65536;
|
|
46
|
+
readonly knowledge_cutoff: "2025-01-01";
|
|
47
|
+
readonly supports: {
|
|
48
|
+
readonly input: ["text", "image", "audio", "video", "document"];
|
|
49
|
+
readonly output: ["text"];
|
|
50
|
+
readonly capabilities: ["batch_api", "caching", "function_calling", "structured_output", "thinking"];
|
|
51
|
+
readonly tools: ["code_execution", "file_search", "google_search", "url_context"];
|
|
52
|
+
};
|
|
53
|
+
readonly pricing: {
|
|
54
|
+
readonly input: {
|
|
55
|
+
readonly normal: 0.25;
|
|
56
|
+
};
|
|
57
|
+
readonly output: {
|
|
58
|
+
readonly normal: 1.5;
|
|
59
|
+
};
|
|
60
|
+
};
|
|
61
|
+
};
|
|
62
|
+
declare const GEMINI_3_1_FLASH_LITE_PREVIEW: {
|
|
63
|
+
readonly name: "gemini-3.1-flash-lite-preview";
|
|
64
|
+
readonly max_input_tokens: 1048576;
|
|
65
|
+
readonly max_output_tokens: 65536;
|
|
66
|
+
readonly knowledge_cutoff: "2025-01-01";
|
|
67
|
+
readonly supports: {
|
|
68
|
+
readonly input: ["text", "image", "audio", "video", "document"];
|
|
69
|
+
readonly output: ["text"];
|
|
70
|
+
readonly capabilities: ["batch_api", "caching", "function_calling", "structured_output", "thinking"];
|
|
71
|
+
readonly tools: ["code_execution", "file_search", "google_search", "url_context"];
|
|
72
|
+
};
|
|
73
|
+
readonly pricing: {
|
|
74
|
+
readonly input: {
|
|
75
|
+
readonly normal: 0.25;
|
|
76
|
+
};
|
|
77
|
+
readonly output: {
|
|
78
|
+
readonly normal: 1.5;
|
|
79
|
+
};
|
|
80
|
+
};
|
|
81
|
+
};
|
|
82
|
+
declare const GEMINI_2_5_PRO: {
|
|
83
|
+
readonly name: "gemini-2.5-pro";
|
|
84
|
+
readonly max_input_tokens: 1048576;
|
|
85
|
+
readonly max_output_tokens: 65536;
|
|
86
|
+
readonly knowledge_cutoff: "2025-01-01";
|
|
87
|
+
readonly supports: {
|
|
88
|
+
readonly input: ["text", "image", "audio", "video", "document"];
|
|
89
|
+
readonly output: ["text"];
|
|
90
|
+
readonly capabilities: ["batch_api", "caching", "function_calling", "structured_output", "thinking"];
|
|
91
|
+
readonly tools: ["code_execution", "file_search", "google_maps", "google_search", "url_context"];
|
|
92
|
+
};
|
|
93
|
+
readonly pricing: {
|
|
94
|
+
readonly input: {
|
|
95
|
+
readonly normal: 2.5;
|
|
96
|
+
};
|
|
97
|
+
readonly output: {
|
|
98
|
+
readonly normal: 15;
|
|
99
|
+
};
|
|
100
|
+
};
|
|
101
|
+
};
|
|
102
|
+
declare const GEMINI_2_5_FLASH: {
|
|
103
|
+
readonly name: "gemini-2.5-flash";
|
|
104
|
+
readonly max_input_tokens: 1048576;
|
|
105
|
+
readonly max_output_tokens: 65536;
|
|
106
|
+
readonly knowledge_cutoff: "2025-01-01";
|
|
107
|
+
readonly supports: {
|
|
108
|
+
readonly input: ["text", "image", "audio", "video"];
|
|
109
|
+
readonly output: ["text"];
|
|
110
|
+
readonly capabilities: ["batch_api", "caching", "function_calling", "structured_output", "thinking"];
|
|
111
|
+
readonly tools: ["code_execution", "file_search", "google_maps", "google_search", "url_context"];
|
|
112
|
+
};
|
|
113
|
+
readonly pricing: {
|
|
114
|
+
readonly input: {
|
|
115
|
+
readonly normal: 1;
|
|
116
|
+
};
|
|
117
|
+
readonly output: {
|
|
118
|
+
readonly normal: 2.5;
|
|
119
|
+
};
|
|
120
|
+
};
|
|
121
|
+
};
|
|
122
|
+
declare const GEMINI_2_5_FLASH_LITE: {
|
|
123
|
+
readonly name: "gemini-2.5-flash-lite";
|
|
124
|
+
readonly max_input_tokens: 1048576;
|
|
125
|
+
readonly max_output_tokens: 65536;
|
|
126
|
+
readonly knowledge_cutoff: "2025-01-01";
|
|
127
|
+
readonly supports: {
|
|
128
|
+
readonly input: ["text", "image", "audio", "video", "document"];
|
|
129
|
+
readonly output: ["text"];
|
|
130
|
+
readonly capabilities: ["batch_api", "caching", "function_calling", "structured_output", "thinking"];
|
|
131
|
+
readonly tools: ["code_execution", "google_maps", "google_search", "url_context"];
|
|
132
|
+
};
|
|
133
|
+
readonly pricing: {
|
|
134
|
+
readonly input: {
|
|
135
|
+
readonly normal: 0.1;
|
|
136
|
+
};
|
|
137
|
+
readonly output: {
|
|
138
|
+
readonly normal: 0.4;
|
|
139
|
+
};
|
|
140
|
+
};
|
|
141
|
+
};
|
|
142
|
+
declare const GEMINI_3_5_FLASH: {
|
|
143
|
+
readonly name: "gemini-3.5-flash";
|
|
144
|
+
readonly max_input_tokens: 1048576;
|
|
145
|
+
readonly max_output_tokens: 65536;
|
|
146
|
+
readonly supports: {
|
|
147
|
+
readonly input: ["text", "image", "video", "document", "audio"];
|
|
148
|
+
readonly output: ["text"];
|
|
149
|
+
readonly capabilities: ["batch_api", "caching", "function_calling", "structured_output", "thinking"];
|
|
150
|
+
readonly tools: ["code_execution", "file_search", "google_search", "url_context"];
|
|
151
|
+
};
|
|
152
|
+
readonly pricing: {
|
|
153
|
+
readonly input: {
|
|
154
|
+
readonly normal: 1.5;
|
|
155
|
+
readonly cached: 0.15;
|
|
156
|
+
};
|
|
157
|
+
readonly output: {
|
|
158
|
+
readonly normal: 9;
|
|
159
|
+
};
|
|
160
|
+
};
|
|
161
|
+
};
|
|
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"];
|
|
163
|
+
/**
|
|
164
|
+
* Gemini models that support combining `tools` + `responseSchema` in a
|
|
165
|
+
* single streaming `generateContent` call (per issue #605). Per the
|
|
166
|
+
* provider matrix, Gemini 3.x natively interleaves the schema-constrained
|
|
167
|
+
* answer with function-calling on one pass; Gemini 2.x is unsupported /
|
|
168
|
+
* brittle and keeps the engine's legacy finalization fallback.
|
|
169
|
+
*/
|
|
170
|
+
export declare const GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS: Set<string>;
|
|
171
|
+
export type GeminiModels = (typeof GEMINI_MODELS)[number];
|
|
172
|
+
export type GeminiImageModels = (typeof GEMINI_IMAGE_MODELS)[number];
|
|
173
|
+
export declare const GEMINI_IMAGE_MODELS: readonly ["gemini-3.1-flash-image-preview", "gemini-3-pro-image-preview", "gemini-2.5-flash-image", "imagen-3.0-generate-002", "imagen-4.0-generate-001", "imagen-4.0-fast-generate-001", "imagen-4.0-ultra-generate-001"];
|
|
174
|
+
/**
|
|
175
|
+
* Text-to-speech models
|
|
176
|
+
* @experimental Gemini TTS is an experimental feature and may change.
|
|
177
|
+
*/
|
|
178
|
+
export declare const GEMINI_TTS_MODELS: readonly ["gemini-3.1-flash-tts-preview", "gemini-2.5-flash-preview-tts", "gemini-2.5-pro-preview-tts"];
|
|
179
|
+
/**
|
|
180
|
+
* Audio generation models (Lyria music generation).
|
|
181
|
+
* @experimental Lyria music generation is an experimental feature and may change.
|
|
182
|
+
*/
|
|
183
|
+
export declare const GEMINI_AUDIO_MODELS: readonly ["lyria-3-pro-preview", "lyria-3-clip-preview"];
|
|
184
|
+
/**
|
|
185
|
+
* Available voice names for Gemini TTS
|
|
186
|
+
* @see https://ai.google.dev/gemini-api/docs/speech-generation
|
|
187
|
+
*/
|
|
188
|
+
export declare const GEMINI_TTS_VOICES: readonly ["Zephyr", "Puck", "Charon", "Kore", "Fenrir", "Leda", "Orus", "Aoede", "Callirrhoe", "Autonoe", "Enceladus", "Iapetus", "Umbriel", "Algieba", "Despina", "Erinome", "Algenib", "Rasalgethi", "Laomedeia", "Achernar", "Alnilam", "Schedar", "Gacrux", "Pulcherrima", "Achird", "Zubenelgenubi", "Vindemiatrix", "Sadachbia", "Sadaltager", "Sulafat"];
|
|
189
|
+
export type GeminiTTSVoice = (typeof GEMINI_TTS_VOICES)[number];
|
|
190
|
+
/**
|
|
191
|
+
* Veo video generation models.
|
|
192
|
+
* @experimental Veo video generation is an experimental feature and may change.
|
|
193
|
+
*/
|
|
194
|
+
export declare const GEMINI_VIDEO_MODELS: readonly ["veo-3.1-generate-preview", "veo-3.1-fast-generate-preview", "veo-3.0-generate-001", "veo-3.0-fast-generate-001", "veo-2.0-generate-001"];
|
|
195
|
+
export type GeminiChatModelProviderOptionsByName = {
|
|
196
|
+
[GEMINI_3_1_PRO.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
|
|
197
|
+
[GEMINI_3_FLASH.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
|
|
198
|
+
[GEMINI_3_1_FLASH_LITE.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
|
|
199
|
+
[GEMINI_3_1_FLASH_LITE_PREVIEW.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
|
|
200
|
+
[GEMINI_2_5_PRO.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
|
|
201
|
+
[GEMINI_2_5_FLASH.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
|
|
202
|
+
[GEMINI_2_5_FLASH_LITE.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
|
|
203
|
+
[GEMINI_3_5_FLASH.name]: GeminiToolConfigOptions & GeminiSafetyOptions & GeminiCommonConfigOptions & GeminiCachedContentOptions & GeminiStructuredOutputOptions & GeminiThinkingOptions;
|
|
204
|
+
};
|
|
205
|
+
/**
|
|
206
|
+
* Type-only map from chat model name to its supported tool capabilities.
|
|
207
|
+
* Based on the 'supports.tools' arrays defined for each model.
|
|
208
|
+
*/
|
|
209
|
+
export type GeminiChatModelToolCapabilitiesByName = {
|
|
210
|
+
[GEMINI_3_1_PRO.name]: typeof GEMINI_3_1_PRO.supports.tools;
|
|
211
|
+
[GEMINI_3_FLASH.name]: typeof GEMINI_3_FLASH.supports.tools;
|
|
212
|
+
[GEMINI_3_1_FLASH_LITE.name]: typeof GEMINI_3_1_FLASH_LITE.supports.tools;
|
|
213
|
+
[GEMINI_3_1_FLASH_LITE_PREVIEW.name]: typeof GEMINI_3_1_FLASH_LITE_PREVIEW.supports.tools;
|
|
214
|
+
[GEMINI_2_5_PRO.name]: typeof GEMINI_2_5_PRO.supports.tools;
|
|
215
|
+
[GEMINI_2_5_FLASH.name]: typeof GEMINI_2_5_FLASH.supports.tools;
|
|
216
|
+
[GEMINI_2_5_FLASH_LITE.name]: typeof GEMINI_2_5_FLASH_LITE.supports.tools;
|
|
217
|
+
[GEMINI_3_5_FLASH.name]: typeof GEMINI_3_5_FLASH.supports.tools;
|
|
218
|
+
};
|
|
219
|
+
/**
|
|
220
|
+
* Type-only map from chat model name to its supported input modalities.
|
|
221
|
+
* Based on the 'supports.input' arrays defined for each model.
|
|
222
|
+
* Note: 'document' in the model meta is mapped to 'document' modality.
|
|
223
|
+
* Used by the core AI types to constrain ContentPart types based on the selected model.
|
|
224
|
+
* Note: These must be inlined as readonly arrays (not typeof) because the model
|
|
225
|
+
* constants are not exported and typeof references don't work in .d.ts files
|
|
226
|
+
* when consumed by external packages.
|
|
227
|
+
*
|
|
228
|
+
* @see https://ai.google.dev/gemini-api/docs/vision
|
|
229
|
+
* @see https://ai.google.dev/gemini-api/docs/audio
|
|
230
|
+
* @see https://ai.google.dev/gemini-api/docs/document-processing
|
|
231
|
+
*/
|
|
232
|
+
export type GeminiModelInputModalitiesByName = {
|
|
233
|
+
[GEMINI_3_1_PRO.name]: typeof GEMINI_3_1_PRO.supports.input;
|
|
234
|
+
[GEMINI_3_FLASH.name]: typeof GEMINI_3_FLASH.supports.input;
|
|
235
|
+
[GEMINI_3_1_FLASH_LITE.name]: typeof GEMINI_3_1_FLASH_LITE.supports.input;
|
|
236
|
+
[GEMINI_3_1_FLASH_LITE_PREVIEW.name]: typeof GEMINI_3_1_FLASH_LITE_PREVIEW.supports.input;
|
|
237
|
+
[GEMINI_2_5_PRO.name]: typeof GEMINI_2_5_PRO.supports.input;
|
|
238
|
+
[GEMINI_2_5_FLASH_LITE.name]: typeof GEMINI_2_5_FLASH_LITE.supports.input;
|
|
239
|
+
[GEMINI_3_5_FLASH.name]: typeof GEMINI_3_5_FLASH.supports.input;
|
|
240
|
+
[GEMINI_2_5_FLASH.name]: typeof GEMINI_2_5_FLASH.supports.input;
|
|
241
|
+
};
|
|
242
|
+
export {};
|
|
@@ -0,0 +1,159 @@
|
|
|
1
|
+
const GEMINI_3_1_PRO = {
|
|
2
|
+
name: "gemini-3.1-pro-preview"
|
|
3
|
+
};
|
|
4
|
+
const GEMINI_3_FLASH = {
|
|
5
|
+
name: "gemini-3-flash-preview"
|
|
6
|
+
};
|
|
7
|
+
const GEMINI_3_PRO_IMAGE = {
|
|
8
|
+
name: "gemini-3-pro-image-preview"
|
|
9
|
+
};
|
|
10
|
+
const GEMINI_3_1_FLASH_IMAGE = {
|
|
11
|
+
name: "gemini-3.1-flash-image-preview"
|
|
12
|
+
};
|
|
13
|
+
const GEMINI_3_1_FLASH_LITE = {
|
|
14
|
+
name: "gemini-3.1-flash-lite"
|
|
15
|
+
};
|
|
16
|
+
const GEMINI_3_1_FLASH_LITE_PREVIEW = {
|
|
17
|
+
name: "gemini-3.1-flash-lite-preview"
|
|
18
|
+
};
|
|
19
|
+
const GEMINI_2_5_PRO = {
|
|
20
|
+
name: "gemini-2.5-pro"
|
|
21
|
+
};
|
|
22
|
+
const GEMINI_2_5_PRO_TTS = {
|
|
23
|
+
name: "gemini-2.5-pro-preview-tts"
|
|
24
|
+
};
|
|
25
|
+
const GEMINI_2_5_FLASH = {
|
|
26
|
+
name: "gemini-2.5-flash"
|
|
27
|
+
};
|
|
28
|
+
const GEMINI_2_5_FLASH_IMAGE = {
|
|
29
|
+
name: "gemini-2.5-flash-image"
|
|
30
|
+
};
|
|
31
|
+
const GEMINI_2_5_FLASH_TTS = {
|
|
32
|
+
name: "gemini-2.5-flash-preview-tts"
|
|
33
|
+
};
|
|
34
|
+
const GEMINI_3_1_FLASH_TTS = {
|
|
35
|
+
name: "gemini-3.1-flash-tts-preview"
|
|
36
|
+
};
|
|
37
|
+
const LYRIA_3_PRO = {
|
|
38
|
+
name: "lyria-3-pro-preview"
|
|
39
|
+
};
|
|
40
|
+
const LYRIA_3_CLIP = {
|
|
41
|
+
name: "lyria-3-clip-preview"
|
|
42
|
+
};
|
|
43
|
+
const GEMINI_2_5_FLASH_LITE = {
|
|
44
|
+
name: "gemini-2.5-flash-lite"
|
|
45
|
+
};
|
|
46
|
+
const IMAGEN_4_GENERATE = {
|
|
47
|
+
name: "imagen-4.0-generate-001"
|
|
48
|
+
};
|
|
49
|
+
const IMAGEN_4_GENERATE_ULTRA = {
|
|
50
|
+
name: "imagen-4.0-ultra-generate-001"
|
|
51
|
+
};
|
|
52
|
+
const IMAGEN_4_GENERATE_FAST = {
|
|
53
|
+
name: "imagen-4.0-fast-generate-001"
|
|
54
|
+
};
|
|
55
|
+
const IMAGEN_3 = {
|
|
56
|
+
name: "imagen-3.0-generate-002"
|
|
57
|
+
};
|
|
58
|
+
const VEO_3_1_PREVIEW = {
|
|
59
|
+
name: "veo-3.1-generate-preview"
|
|
60
|
+
};
|
|
61
|
+
const VEO_3_1_FAST_PREVIEW = {
|
|
62
|
+
name: "veo-3.1-fast-generate-preview"
|
|
63
|
+
};
|
|
64
|
+
const VEO_3 = {
|
|
65
|
+
name: "veo-3.0-generate-001"
|
|
66
|
+
};
|
|
67
|
+
const VEO_3_FAST = {
|
|
68
|
+
name: "veo-3.0-fast-generate-001"
|
|
69
|
+
};
|
|
70
|
+
const VEO_2 = {
|
|
71
|
+
name: "veo-2.0-generate-001"
|
|
72
|
+
};
|
|
73
|
+
const GEMINI_3_5_FLASH = {
|
|
74
|
+
name: "gemini-3.5-flash"
|
|
75
|
+
};
|
|
76
|
+
const GEMINI_MODELS = [
|
|
77
|
+
GEMINI_3_5_FLASH.name,
|
|
78
|
+
GEMINI_3_1_PRO.name,
|
|
79
|
+
GEMINI_3_FLASH.name,
|
|
80
|
+
GEMINI_3_1_FLASH_LITE.name,
|
|
81
|
+
GEMINI_3_1_FLASH_LITE_PREVIEW.name,
|
|
82
|
+
GEMINI_2_5_PRO.name,
|
|
83
|
+
GEMINI_2_5_FLASH.name,
|
|
84
|
+
GEMINI_2_5_FLASH_LITE.name
|
|
85
|
+
];
|
|
86
|
+
const GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS = /* @__PURE__ */ new Set([
|
|
87
|
+
GEMINI_3_1_PRO.name,
|
|
88
|
+
GEMINI_3_FLASH.name,
|
|
89
|
+
GEMINI_3_1_FLASH_LITE.name,
|
|
90
|
+
GEMINI_3_1_FLASH_LITE_PREVIEW.name,
|
|
91
|
+
GEMINI_3_5_FLASH.name
|
|
92
|
+
]);
|
|
93
|
+
const GEMINI_IMAGE_MODELS = [
|
|
94
|
+
GEMINI_3_1_FLASH_IMAGE.name,
|
|
95
|
+
GEMINI_3_PRO_IMAGE.name,
|
|
96
|
+
GEMINI_2_5_FLASH_IMAGE.name,
|
|
97
|
+
IMAGEN_3.name,
|
|
98
|
+
IMAGEN_4_GENERATE.name,
|
|
99
|
+
IMAGEN_4_GENERATE_FAST.name,
|
|
100
|
+
IMAGEN_4_GENERATE_ULTRA.name
|
|
101
|
+
];
|
|
102
|
+
const GEMINI_TTS_MODELS = [
|
|
103
|
+
GEMINI_3_1_FLASH_TTS.name,
|
|
104
|
+
GEMINI_2_5_FLASH_TTS.name,
|
|
105
|
+
GEMINI_2_5_PRO_TTS.name
|
|
106
|
+
];
|
|
107
|
+
const GEMINI_AUDIO_MODELS = [
|
|
108
|
+
LYRIA_3_PRO.name,
|
|
109
|
+
LYRIA_3_CLIP.name
|
|
110
|
+
];
|
|
111
|
+
const GEMINI_TTS_VOICES = [
|
|
112
|
+
"Zephyr",
|
|
113
|
+
"Puck",
|
|
114
|
+
"Charon",
|
|
115
|
+
"Kore",
|
|
116
|
+
"Fenrir",
|
|
117
|
+
"Leda",
|
|
118
|
+
"Orus",
|
|
119
|
+
"Aoede",
|
|
120
|
+
"Callirrhoe",
|
|
121
|
+
"Autonoe",
|
|
122
|
+
"Enceladus",
|
|
123
|
+
"Iapetus",
|
|
124
|
+
"Umbriel",
|
|
125
|
+
"Algieba",
|
|
126
|
+
"Despina",
|
|
127
|
+
"Erinome",
|
|
128
|
+
"Algenib",
|
|
129
|
+
"Rasalgethi",
|
|
130
|
+
"Laomedeia",
|
|
131
|
+
"Achernar",
|
|
132
|
+
"Alnilam",
|
|
133
|
+
"Schedar",
|
|
134
|
+
"Gacrux",
|
|
135
|
+
"Pulcherrima",
|
|
136
|
+
"Achird",
|
|
137
|
+
"Zubenelgenubi",
|
|
138
|
+
"Vindemiatrix",
|
|
139
|
+
"Sadachbia",
|
|
140
|
+
"Sadaltager",
|
|
141
|
+
"Sulafat"
|
|
142
|
+
];
|
|
143
|
+
const GEMINI_VIDEO_MODELS = [
|
|
144
|
+
VEO_3_1_PREVIEW.name,
|
|
145
|
+
VEO_3_1_FAST_PREVIEW.name,
|
|
146
|
+
VEO_3.name,
|
|
147
|
+
VEO_3_FAST.name,
|
|
148
|
+
VEO_2.name
|
|
149
|
+
];
|
|
150
|
+
export {
|
|
151
|
+
GEMINI_AUDIO_MODELS,
|
|
152
|
+
GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS,
|
|
153
|
+
GEMINI_IMAGE_MODELS,
|
|
154
|
+
GEMINI_MODELS,
|
|
155
|
+
GEMINI_TTS_MODELS,
|
|
156
|
+
GEMINI_TTS_VOICES,
|
|
157
|
+
GEMINI_VIDEO_MODELS
|
|
158
|
+
};
|
|
159
|
+
//# sourceMappingURL=model-meta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"model-meta.js","sources":["../../src/model-meta.ts"],"sourcesContent":["import type {\n GeminiCachedContentOptions,\n GeminiCommonConfigOptions,\n GeminiSafetyOptions,\n GeminiStructuredOutputOptions,\n GeminiThinkingOptions,\n GeminiToolConfigOptions,\n} from './text/text-provider-options'\n\ninterface ModelMeta<TProviderOptions = unknown> {\n name: string\n supports: {\n input: Array<'text' | 'image' | 'audio' | 'video' | 'document'>\n output: Array<'text' | 'image' | 'audio' | 'video'>\n capabilities?: Array<\n | 'audio_generation'\n | 'batch_api'\n | 'caching'\n | 'function_calling'\n | 'live_api'\n | 'structured_output'\n | 'thinking'\n >\n tools?: Array<\n | 'code_execution'\n | 'file_search'\n | 'google_search'\n | 'google_search_retrieval'\n | 'google_maps'\n | 'url_context'\n | 'computer_use'\n >\n }\n max_input_tokens?: number\n max_output_tokens?: number\n knowledge_cutoff?: string\n pricing?: {\n input: {\n normal: number\n cached?: number\n }\n output: {\n normal: number\n }\n }\n /**\n * Type-level description of which provider options this model supports.\n */\n providerOptions?: TProviderOptions\n}\n\nconst GEMINI_3_1_PRO = {\n name: 'gemini-3.1-pro-preview',\n max_input_tokens: 1_048_576,\n max_output_tokens: 65_536,\n knowledge_cutoff: '2025-01-01',\n supports: {\n input: ['text', 'image', 'audio', 'video', 'document'],\n output: ['text'],\n capabilities: [\n 'batch_api',\n 'caching',\n 'function_calling',\n 'structured_output',\n 'thinking',\n ],\n tools: ['code_execution', 'file_search', 'google_search', 'url_context'],\n },\n pricing: {\n input: {\n normal: 2.5,\n },\n output: {\n normal: 15,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n>\n\nconst GEMINI_3_FLASH = {\n name: 'gemini-3-flash-preview',\n max_input_tokens: 1_048_576,\n max_output_tokens: 65_536,\n knowledge_cutoff: '2025-01-01',\n supports: {\n input: ['text', 'image', 'audio', 'video', 'document'],\n output: ['text'],\n capabilities: [\n 'batch_api',\n 'caching',\n 'function_calling',\n 'structured_output',\n 'thinking',\n ],\n tools: ['code_execution', 'file_search', 'google_search', 'url_context'],\n },\n pricing: {\n input: {\n normal: 0.5,\n },\n output: {\n normal: 3,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n>\n\nconst GEMINI_3_PRO_IMAGE = {\n name: 'gemini-3-pro-image-preview',\n max_input_tokens: 65_536,\n max_output_tokens: 32_768,\n knowledge_cutoff: '2025-01-01',\n supports: {\n input: ['text', 'image'],\n output: ['text', 'image'],\n capabilities: ['batch_api', 'structured_output', 'thinking'],\n tools: ['google_search'],\n },\n pricing: {\n input: {\n normal: 2,\n },\n output: {\n normal: 0.134,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n>\n\nconst GEMINI_3_1_FLASH_IMAGE = {\n name: 'gemini-3.1-flash-image-preview',\n max_input_tokens: 65_536,\n max_output_tokens: 65_536,\n knowledge_cutoff: '2025-01-01',\n supports: {\n input: ['text', 'image'],\n output: ['text', 'image'],\n capabilities: ['batch_api', 'structured_output', 'thinking'],\n tools: ['google_search'],\n },\n pricing: {\n input: {\n normal: 0.25,\n },\n output: {\n normal: 1.5,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n>\n\nconst GEMINI_3_1_FLASH_LITE = {\n name: 'gemini-3.1-flash-lite',\n max_input_tokens: 1_048_576,\n max_output_tokens: 65_536,\n knowledge_cutoff: '2025-01-01',\n supports: {\n input: ['text', 'image', 'audio', 'video', 'document'],\n output: ['text'],\n capabilities: [\n 'batch_api',\n 'caching',\n 'function_calling',\n 'structured_output',\n 'thinking',\n ],\n tools: ['code_execution', 'file_search', 'google_search', 'url_context'],\n },\n pricing: {\n input: {\n normal: 0.25,\n },\n output: {\n normal: 1.5,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n>\n\nconst GEMINI_3_1_FLASH_LITE_PREVIEW = {\n name: 'gemini-3.1-flash-lite-preview',\n max_input_tokens: 1_048_576,\n max_output_tokens: 65_536,\n knowledge_cutoff: '2025-01-01',\n supports: {\n input: ['text', 'image', 'audio', 'video', 'document'],\n output: ['text'],\n capabilities: [\n 'batch_api',\n 'caching',\n 'function_calling',\n 'structured_output',\n 'thinking',\n ],\n tools: ['code_execution', 'file_search', 'google_search', 'url_context'],\n },\n pricing: {\n input: {\n normal: 0.25,\n },\n output: {\n normal: 1.5,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n>\n\nconst GEMINI_2_5_PRO = {\n name: 'gemini-2.5-pro',\n max_input_tokens: 1_048_576,\n max_output_tokens: 65_536,\n knowledge_cutoff: '2025-01-01',\n supports: {\n input: ['text', 'image', 'audio', 'video', 'document'],\n output: ['text'],\n capabilities: [\n 'batch_api',\n 'caching',\n 'function_calling',\n 'structured_output',\n 'thinking',\n ],\n tools: [\n 'code_execution',\n 'file_search',\n 'google_maps',\n 'google_search',\n 'url_context',\n ],\n },\n pricing: {\n input: {\n normal: 2.5,\n },\n output: {\n normal: 15,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n>\n\nconst GEMINI_2_5_PRO_TTS = {\n name: 'gemini-2.5-pro-preview-tts',\n max_input_tokens: 8_192,\n max_output_tokens: 16_384,\n knowledge_cutoff: '2025-05-01',\n supports: {\n input: ['text'],\n output: ['audio'],\n capabilities: ['audio_generation'],\n },\n pricing: {\n input: {\n normal: 2.5,\n },\n output: {\n normal: 15,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n\nconst GEMINI_2_5_FLASH = {\n name: 'gemini-2.5-flash',\n max_input_tokens: 1_048_576,\n max_output_tokens: 65_536,\n knowledge_cutoff: '2025-01-01',\n supports: {\n input: ['text', 'image', 'audio', 'video'],\n output: ['text'],\n capabilities: [\n 'batch_api',\n 'caching',\n 'function_calling',\n 'structured_output',\n 'thinking',\n ],\n tools: [\n 'code_execution',\n 'file_search',\n 'google_maps',\n 'google_search',\n 'url_context',\n ],\n },\n pricing: {\n input: {\n normal: 1,\n },\n output: {\n normal: 2.5,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n>\n\nconst GEMINI_2_5_FLASH_IMAGE = {\n name: 'gemini-2.5-flash-image',\n max_input_tokens: 1_048_576,\n max_output_tokens: 65_536,\n knowledge_cutoff: '2025-06-01',\n supports: {\n input: ['text', 'image'],\n output: ['text', 'image'],\n capabilities: ['batch_api', 'caching', 'structured_output'],\n tools: ['file_search'],\n },\n pricing: {\n input: {\n normal: 0.3,\n },\n output: {\n normal: 0.4,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n/**\nconst GEMINI_2_5_FLASH_LIVE = {\n name: 'gemini-2.5-flash-native-audio-preview-09-2025',\n max_input_tokens: 141_072,\n max_output_tokens: 8_192,\n knowledge_cutoff: '2025-01-01',\n supports: {\n input: ['text', 'audio', 'video'],\n output: ['text', 'audio'],\n capabilities: [\n 'audio_generation',\n 'file_search',\n 'function_calling',\n 'live_api',\n 'search_grounding',\n 'thinking',\n ],\n },\n pricing: {\n // todo find this info\n input: {\n normal: 0,\n },\n output: {\n normal: 0,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiGenerationConfigOptions &\n GeminiCachedContentOptions &\n GeminiThinkingOptions\n>\n*/\nconst GEMINI_2_5_FLASH_TTS = {\n name: 'gemini-2.5-flash-preview-tts',\n max_input_tokens: 8_192,\n max_output_tokens: 16_384,\n knowledge_cutoff: '2025-05-01',\n supports: {\n input: ['text'],\n output: ['audio'],\n capabilities: ['audio_generation', 'batch_api'],\n },\n pricing: {\n input: {\n normal: 1,\n },\n output: {\n normal: 2.5,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n\n/**\n * Gemini 3.1 Flash TTS Preview - latest expressive TTS model with\n * 200+ audio tags, 70+ languages, and multi-speaker dialogue support.\n * @see https://ai.google.dev/gemini-api/docs/models/gemini-3.1-flash-tts-preview\n */\nconst GEMINI_3_1_FLASH_TTS = {\n name: 'gemini-3.1-flash-tts-preview',\n max_input_tokens: 32_768,\n max_output_tokens: 16_384,\n knowledge_cutoff: '2025-05-01',\n supports: {\n input: ['text'],\n output: ['audio'],\n capabilities: ['audio_generation', 'batch_api'],\n },\n pricing: {\n input: {\n normal: 0.5,\n },\n output: {\n normal: 10,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n\n/**\n * Lyria 3 Pro Preview — Google's flagship music generation model.\n * Generates full-length songs with multiple verses, choruses, and bridges.\n * Outputs MP3 or WAV at 48 kHz stereo.\n * @see https://ai.google.dev/gemini-api/docs/models/lyria-3-pro-preview\n */\nconst LYRIA_3_PRO = {\n name: 'lyria-3-pro-preview',\n max_input_tokens: 131_072,\n supports: {\n input: ['text', 'image'],\n output: ['audio'],\n capabilities: ['audio_generation'],\n },\n pricing: {\n input: {\n normal: 0,\n },\n output: {\n normal: 0,\n },\n },\n} as const satisfies ModelMeta\n\n/**\n * Lyria 3 Clip Preview — 30-second music clips in MP3 format.\n * @see https://ai.google.dev/gemini-api/docs/music-generation\n */\nconst LYRIA_3_CLIP = {\n name: 'lyria-3-clip-preview',\n max_input_tokens: 131_072,\n supports: {\n input: ['text', 'image'],\n output: ['audio'],\n capabilities: ['audio_generation'],\n },\n pricing: {\n input: {\n normal: 0,\n },\n output: {\n normal: 0,\n },\n },\n} as const satisfies ModelMeta\n\nconst GEMINI_2_5_FLASH_LITE = {\n name: 'gemini-2.5-flash-lite',\n max_input_tokens: 1_048_576,\n max_output_tokens: 65_536,\n knowledge_cutoff: '2025-01-01',\n supports: {\n input: ['text', 'image', 'audio', 'video', 'document'],\n output: ['text'],\n capabilities: [\n 'batch_api',\n 'caching',\n 'function_calling',\n 'structured_output',\n 'thinking',\n ],\n tools: ['code_execution', 'google_maps', 'google_search', 'url_context'],\n },\n pricing: {\n input: {\n normal: 0.1,\n },\n output: {\n normal: 0.4,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n>\n\nconst IMAGEN_4_GENERATE = {\n name: 'imagen-4.0-generate-001',\n max_input_tokens: 480,\n max_output_tokens: 4,\n supports: {\n input: ['text'],\n output: ['image'],\n },\n pricing: {\n input: {\n normal: 0,\n },\n output: {\n normal: 0.4,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n\nconst IMAGEN_4_GENERATE_ULTRA = {\n name: 'imagen-4.0-ultra-generate-001',\n max_input_tokens: 480,\n max_output_tokens: 4,\n supports: {\n input: ['text'],\n output: ['image'],\n },\n pricing: {\n input: {\n normal: 0,\n },\n output: {\n normal: 0.6,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n\nconst IMAGEN_4_GENERATE_FAST = {\n name: 'imagen-4.0-fast-generate-001',\n max_input_tokens: 480,\n max_output_tokens: 4,\n supports: {\n input: ['text'],\n output: ['image'],\n },\n pricing: {\n input: {\n normal: 0,\n },\n output: {\n normal: 0.2,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n\nconst IMAGEN_3 = {\n name: 'imagen-3.0-generate-002',\n max_output_tokens: 4,\n supports: {\n input: ['text'],\n output: ['image'],\n },\n pricing: {\n input: {\n normal: 0,\n },\n output: {\n normal: 0.03,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n/**\n * Veo video generation models. Pricing is per second of generated video\n * (audio+video rate where the model supports audio).\n * @experimental Veo video generation is an experimental feature and may change.\n */\nconst VEO_3_1_PREVIEW = {\n name: 'veo-3.1-generate-preview',\n max_input_tokens: 1024,\n max_output_tokens: 1,\n supports: {\n input: ['text', 'image'],\n output: ['video', 'audio'],\n },\n pricing: {\n input: {\n normal: 0,\n },\n output: {\n normal: 0.4,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n\nconst VEO_3_1_FAST_PREVIEW = {\n name: 'veo-3.1-fast-generate-preview',\n max_input_tokens: 1024,\n max_output_tokens: 1,\n supports: {\n input: ['text', 'image'],\n output: ['video', 'audio'],\n },\n pricing: {\n input: {\n normal: 0,\n },\n output: {\n normal: 0.15,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n\nconst VEO_3 = {\n name: 'veo-3.0-generate-001',\n max_input_tokens: 1024,\n max_output_tokens: 1,\n supports: {\n input: ['text', 'image'],\n output: ['video', 'audio'],\n },\n pricing: {\n input: {\n normal: 0,\n },\n output: {\n normal: 0.4,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n\nconst VEO_3_FAST = {\n name: 'veo-3.0-fast-generate-001',\n max_input_tokens: 1024,\n max_output_tokens: 1,\n supports: {\n input: ['text', 'image'],\n output: ['video', 'audio'],\n },\n pricing: {\n input: {\n normal: 0,\n },\n output: {\n normal: 0.15,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n\nconst VEO_2 = {\n name: 'veo-2.0-generate-001',\n max_output_tokens: 2,\n supports: {\n input: ['text', 'image'],\n output: ['video'],\n },\n pricing: {\n input: {\n normal: 0,\n },\n output: {\n normal: 0.35,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions\n>\n\nconst GEMINI_3_5_FLASH = {\n name: 'gemini-3.5-flash',\n max_input_tokens: 1_048_576,\n max_output_tokens: 65_536,\n supports: {\n input: ['text', 'image', 'video', 'document', 'audio'],\n output: ['text'],\n capabilities: [\n 'batch_api',\n 'caching',\n 'function_calling',\n 'structured_output',\n 'thinking',\n ],\n tools: ['code_execution', 'file_search', 'google_search', 'url_context'],\n },\n pricing: {\n input: {\n normal: 1.5,\n cached: 0.15,\n },\n output: {\n normal: 9,\n },\n },\n} as const satisfies ModelMeta<\n GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n>\n\nexport const GEMINI_MODELS = [\n GEMINI_3_5_FLASH.name,\n GEMINI_3_1_PRO.name,\n GEMINI_3_FLASH.name,\n GEMINI_3_1_FLASH_LITE.name,\n GEMINI_3_1_FLASH_LITE_PREVIEW.name,\n GEMINI_2_5_PRO.name,\n GEMINI_2_5_FLASH.name,\n GEMINI_2_5_FLASH_LITE.name,\n] as const\n\n/**\n * Gemini models that support combining `tools` + `responseSchema` in a\n * single streaming `generateContent` call (per issue #605). Per the\n * provider matrix, Gemini 3.x natively interleaves the schema-constrained\n * answer with function-calling on one pass; Gemini 2.x is unsupported /\n * brittle and keeps the engine's legacy finalization fallback.\n */\nexport const GEMINI_COMBINED_TOOLS_AND_SCHEMA_MODELS = new Set<string>([\n GEMINI_3_1_PRO.name,\n GEMINI_3_FLASH.name,\n GEMINI_3_1_FLASH_LITE.name,\n GEMINI_3_1_FLASH_LITE_PREVIEW.name,\n GEMINI_3_5_FLASH.name,\n])\n\nexport type GeminiModels = (typeof GEMINI_MODELS)[number]\n\nexport type GeminiImageModels = (typeof GEMINI_IMAGE_MODELS)[number]\n\nexport const GEMINI_IMAGE_MODELS = [\n GEMINI_3_1_FLASH_IMAGE.name,\n GEMINI_3_PRO_IMAGE.name,\n GEMINI_2_5_FLASH_IMAGE.name,\n IMAGEN_3.name,\n IMAGEN_4_GENERATE.name,\n IMAGEN_4_GENERATE_FAST.name,\n IMAGEN_4_GENERATE_ULTRA.name,\n] as const\n\n/**\n * Text-to-speech models\n * @experimental Gemini TTS is an experimental feature and may change.\n */\nexport const GEMINI_TTS_MODELS = [\n GEMINI_3_1_FLASH_TTS.name,\n GEMINI_2_5_FLASH_TTS.name,\n GEMINI_2_5_PRO_TTS.name,\n] as const\n\n/**\n * Audio generation models (Lyria music generation).\n * @experimental Lyria music generation is an experimental feature and may change.\n */\nexport const GEMINI_AUDIO_MODELS = [\n LYRIA_3_PRO.name,\n LYRIA_3_CLIP.name,\n] as const\n\n/**\n * Available voice names for Gemini TTS\n * @see https://ai.google.dev/gemini-api/docs/speech-generation\n */\nexport const GEMINI_TTS_VOICES = [\n 'Zephyr',\n 'Puck',\n 'Charon',\n 'Kore',\n 'Fenrir',\n 'Leda',\n 'Orus',\n 'Aoede',\n 'Callirrhoe',\n 'Autonoe',\n 'Enceladus',\n 'Iapetus',\n 'Umbriel',\n 'Algieba',\n 'Despina',\n 'Erinome',\n 'Algenib',\n 'Rasalgethi',\n 'Laomedeia',\n 'Achernar',\n 'Alnilam',\n 'Schedar',\n 'Gacrux',\n 'Pulcherrima',\n 'Achird',\n 'Zubenelgenubi',\n 'Vindemiatrix',\n 'Sadachbia',\n 'Sadaltager',\n 'Sulafat',\n] as const\n\nexport type GeminiTTSVoice = (typeof GEMINI_TTS_VOICES)[number]\n\n/**\n * Veo video generation models.\n * @experimental Veo video generation is an experimental feature and may change.\n */\nexport const GEMINI_VIDEO_MODELS = [\n VEO_3_1_PREVIEW.name,\n VEO_3_1_FAST_PREVIEW.name,\n VEO_3.name,\n VEO_3_FAST.name,\n VEO_2.name,\n] as const\n\n// Manual type map for per-model provider options\nexport type GeminiChatModelProviderOptionsByName = {\n // Models with thinking and structured output support\n [GEMINI_3_1_PRO.name]: GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n [GEMINI_3_FLASH.name]: GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n [GEMINI_3_1_FLASH_LITE.name]: GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n [GEMINI_3_1_FLASH_LITE_PREVIEW.name]: GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n [GEMINI_2_5_PRO.name]: GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n [GEMINI_2_5_FLASH.name]: GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n [GEMINI_2_5_FLASH_LITE.name]: GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n [GEMINI_3_5_FLASH.name]: GeminiToolConfigOptions &\n GeminiSafetyOptions &\n GeminiCommonConfigOptions &\n GeminiCachedContentOptions &\n GeminiStructuredOutputOptions &\n GeminiThinkingOptions\n}\n\n/**\n * Type-only map from chat model name to its supported tool capabilities.\n * Based on the 'supports.tools' arrays defined for each model.\n */\nexport type GeminiChatModelToolCapabilitiesByName = {\n [GEMINI_3_1_PRO.name]: typeof GEMINI_3_1_PRO.supports.tools\n [GEMINI_3_FLASH.name]: typeof GEMINI_3_FLASH.supports.tools\n [GEMINI_3_1_FLASH_LITE.name]: typeof GEMINI_3_1_FLASH_LITE.supports.tools\n [GEMINI_3_1_FLASH_LITE_PREVIEW.name]: typeof GEMINI_3_1_FLASH_LITE_PREVIEW.supports.tools\n [GEMINI_2_5_PRO.name]: typeof GEMINI_2_5_PRO.supports.tools\n [GEMINI_2_5_FLASH.name]: typeof GEMINI_2_5_FLASH.supports.tools\n [GEMINI_2_5_FLASH_LITE.name]: typeof GEMINI_2_5_FLASH_LITE.supports.tools\n [GEMINI_3_5_FLASH.name]: typeof GEMINI_3_5_FLASH.supports.tools\n}\n\n/**\n * Type-only map from chat model name to its supported input modalities.\n * Based on the 'supports.input' arrays defined for each model.\n * Note: 'document' in the model meta is mapped to 'document' modality.\n * Used by the core AI types to constrain ContentPart types based on the selected model.\n * Note: These must be inlined as readonly arrays (not typeof) because the model\n * constants are not exported and typeof references don't work in .d.ts files\n * when consumed by external packages.\n *\n * @see https://ai.google.dev/gemini-api/docs/vision\n * @see https://ai.google.dev/gemini-api/docs/audio\n * @see https://ai.google.dev/gemini-api/docs/document-processing\n */\nexport type GeminiModelInputModalitiesByName = {\n // Models with full multimodal support (text, image, audio, video, document)\n [GEMINI_3_1_PRO.name]: typeof GEMINI_3_1_PRO.supports.input\n [GEMINI_3_FLASH.name]: typeof GEMINI_3_FLASH.supports.input\n [GEMINI_3_1_FLASH_LITE.name]: typeof GEMINI_3_1_FLASH_LITE.supports.input\n [GEMINI_3_1_FLASH_LITE_PREVIEW.name]: typeof GEMINI_3_1_FLASH_LITE_PREVIEW.supports.input\n [GEMINI_2_5_PRO.name]: typeof GEMINI_2_5_PRO.supports.input\n [GEMINI_2_5_FLASH_LITE.name]: typeof GEMINI_2_5_FLASH_LITE.supports.input\n [GEMINI_3_5_FLASH.name]: typeof GEMINI_3_5_FLASH.supports.input\n\n // Models with text, image, audio, video (no document)\n [GEMINI_2_5_FLASH.name]: typeof GEMINI_2_5_FLASH.supports.input\n}\n"],"names":[],"mappings":"AAmDA,MAAM,iBAAiB;AAAA,EACrB,MAAM;AAwBR;AASA,MAAM,iBAAiB;AAAA,EACrB,MAAM;AAwBR;AASA,MAAM,qBAAqB;AAAA,EACzB,MAAM;AAkBR;AASA,MAAM,yBAAyB;AAAA,EAC7B,MAAM;AAkBR;AASA,MAAM,wBAAwB;AAAA,EAC5B,MAAM;AAwBR;AASA,MAAM,gCAAgC;AAAA,EACpC,MAAM;AAwBR;AASA,MAAM,iBAAiB;AAAA,EACrB,MAAM;AA8BR;AASA,MAAM,qBAAqB;AAAA,EACzB,MAAM;AAiBR;AAOA,MAAM,mBAAmB;AAAA,EACvB,MAAM;AA8BR;AASA,MAAM,yBAAyB;AAAA,EAC7B,MAAM;AAkBR;AAyCA,MAAM,uBAAuB;AAAA,EAC3B,MAAM;AAiBR;AAYA,MAAM,uBAAuB;AAAA,EAC3B,MAAM;AAiBR;AAaA,MAAM,cAAc;AAAA,EAClB,MAAM;AAeR;AAMA,MAAM,eAAe;AAAA,EACnB,MAAM;AAeR;AAEA,MAAM,wBAAwB;AAAA,EAC5B,MAAM;AAwBR;AASA,MAAM,oBAAoB;AAAA,EACxB,MAAM;AAeR;AAOA,MAAM,0BAA0B;AAAA,EAC9B,MAAM;AAeR;AAOA,MAAM,yBAAyB;AAAA,EAC7B,MAAM;AAeR;AAOA,MAAM,WAAW;AAAA,EACf,MAAM;AAcR;AAWA,MAAM,kBAAkB;AAAA,EACtB,MAAM;AAeR;AAOA,MAAM,uBAAuB;AAAA,EAC3B,MAAM;AAeR;AAOA,MAAM,QAAQ;AAAA,EACZ,MAAM;AAeR;AAOA,MAAM,aAAa;AAAA,EACjB,MAAM;AAeR;AAOA,MAAM,QAAQ;AAAA,EACZ,MAAM;AAcR;AAOA,MAAM,mBAAmB;AAAA,EACvB,MAAM;AAwBR;AASO,MAAM,gBAAgB;AAAA,EAC3B,iBAAiB;AAAA,EACjB,eAAe;AAAA,EACf,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,8BAA8B;AAAA,EAC9B,eAAe;AAAA,EACf,iBAAiB;AAAA,EACjB,sBAAsB;AACxB;AASO,MAAM,8DAA8C,IAAY;AAAA,EACrE,eAAe;AAAA,EACf,eAAe;AAAA,EACf,sBAAsB;AAAA,EACtB,8BAA8B;AAAA,EAC9B,iBAAiB;AACnB,CAAC;AAMM,MAAM,sBAAsB;AAAA,EACjC,uBAAuB;AAAA,EACvB,mBAAmB;AAAA,EACnB,uBAAuB;AAAA,EACvB,SAAS;AAAA,EACT,kBAAkB;AAAA,EAClB,uBAAuB;AAAA,EACvB,wBAAwB;AAC1B;AAMO,MAAM,oBAAoB;AAAA,EAC/B,qBAAqB;AAAA,EACrB,qBAAqB;AAAA,EACrB,mBAAmB;AACrB;AAMO,MAAM,sBAAsB;AAAA,EACjC,YAAY;AAAA,EACZ,aAAa;AACf;AAMO,MAAM,oBAAoB;AAAA,EAC/B;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AACF;AAQO,MAAM,sBAAsB;AAAA,EACjC,gBAAgB;AAAA,EAChB,qBAAqB;AAAA,EACrB,MAAM;AAAA,EACN,WAAW;AAAA,EACX,MAAM;AACR;"}
|