@@ -151,6 +151,28 @@ describe('Gemini Model Provider Options Type Assertions', () => {
151151 // Should have base options
152152 expectTypeOf < Options > ( ) . toExtend < BaseOptions > ( )
153153 } )
154+
155+ it ( 'gemini-3.1-flash-lite should support thinking options' , ( ) => {
156+ type Model = 'gemini-3.1-flash-lite'
157+ type Options = GeminiChatModelProviderOptionsByName [ Model ]
158+
159+ // Should have thinking options
160+ expectTypeOf < Options > ( ) . toExtend < GeminiThinkingOptions > ( )
161+
162+ // Should have structured output options
163+ expectTypeOf < Options > ( ) . toExtend < GeminiStructuredOutputOptions > ( )
164+
165+ // Should have base options
166+ expectTypeOf < Options > ( ) . toExtend < BaseOptions > ( )
167+
168+ // Verify specific properties exist
169+ expectTypeOf < Options > ( ) . toHaveProperty ( 'generationConfig' )
170+ expectTypeOf < Options > ( ) . toHaveProperty ( 'safetySettings' )
171+ expectTypeOf < Options > ( ) . toHaveProperty ( 'toolConfig' )
172+ expectTypeOf < Options > ( ) . toHaveProperty ( 'cachedContent' )
173+ expectTypeOf < Options > ( ) . toHaveProperty ( 'responseMimeType' )
174+ expectTypeOf < Options > ( ) . toHaveProperty ( 'responseSchema' )
175+ } )
154176 } )
155177
156178 describe ( 'Models WITHOUT thinking support' , ( ) => {
@@ -195,6 +217,7 @@ describe('Gemini Model Provider Options Type Assertions', () => {
195217
196218 expectTypeOf < 'gemini-3-pro-preview' > ( ) . toExtend < Keys > ( )
197219 expectTypeOf < 'gemini-3-flash-preview' > ( ) . toExtend < Keys > ( )
220+ expectTypeOf < 'gemini-3.1-flash-lite' > ( ) . toExtend < Keys > ( )
198221 expectTypeOf < 'gemini-2.5-pro' > ( ) . toExtend < Keys > ( )
199222 expectTypeOf < 'gemini-2.5-flash' > ( ) . toExtend < Keys > ( )
200223 expectTypeOf < 'gemini-2.5-flash-preview-09-2025' > ( ) . toExtend < Keys > ( )
@@ -244,6 +267,9 @@ describe('Gemini Model Provider Options Type Assertions', () => {
244267 expectTypeOf <
245268 GeminiChatModelProviderOptionsByName [ 'gemini-2.5-flash-lite-preview-09-2025' ]
246269 > ( ) . toHaveProperty ( 'safetySettings' )
270+ expectTypeOf <
271+ GeminiChatModelProviderOptionsByName [ 'gemini-3.1-flash-lite' ]
272+ > ( ) . toHaveProperty ( 'safetySettings' )
247273 expectTypeOf <
248274 GeminiChatModelProviderOptionsByName [ 'gemini-2.0-flash' ]
249275 > ( ) . toHaveProperty ( 'safetySettings' )
@@ -274,6 +300,9 @@ describe('Gemini Model Provider Options Type Assertions', () => {
274300 expectTypeOf <
275301 GeminiChatModelProviderOptionsByName [ 'gemini-2.5-flash-lite-preview-09-2025' ]
276302 > ( ) . toHaveProperty ( 'toolConfig' )
303+ expectTypeOf <
304+ GeminiChatModelProviderOptionsByName [ 'gemini-3.1-flash-lite' ]
305+ > ( ) . toHaveProperty ( 'toolConfig' )
277306 expectTypeOf <
278307 GeminiChatModelProviderOptionsByName [ 'gemini-2.0-flash' ]
279308 > ( ) . toHaveProperty ( 'toolConfig' )
@@ -304,6 +333,9 @@ describe('Gemini Model Provider Options Type Assertions', () => {
304333 expectTypeOf <
305334 GeminiChatModelProviderOptionsByName [ 'gemini-2.5-flash-lite-preview-09-2025' ]
306335 > ( ) . toHaveProperty ( 'cachedContent' )
336+ expectTypeOf <
337+ GeminiChatModelProviderOptionsByName [ 'gemini-3.1-flash-lite' ]
338+ > ( ) . toHaveProperty ( 'cachedContent' )
307339 expectTypeOf <
308340 GeminiChatModelProviderOptionsByName [ 'gemini-2.0-flash' ]
309341 > ( ) . toHaveProperty ( 'cachedContent' )
@@ -336,6 +368,9 @@ describe('Gemini Model Provider Options Type Assertions', () => {
336368 expectTypeOf <
337369 GeminiChatModelProviderOptionsByName [ 'gemini-2.5-flash-lite-preview-09-2025' ]
338370 > ( ) . toExtend < GeminiThinkingOptions > ( )
371+ expectTypeOf <
372+ GeminiChatModelProviderOptionsByName [ 'gemini-3.1-flash-lite' ]
373+ > ( ) . toExtend < GeminiThinkingOptions > ( )
339374 } )
340375
341376 it ( 'models without thinking should NOT extend GeminiThinkingOptions' , ( ) => {
@@ -369,6 +404,9 @@ describe('Gemini Model Provider Options Type Assertions', () => {
369404 expectTypeOf <
370405 GeminiChatModelProviderOptionsByName [ 'gemini-2.5-flash-lite-preview-09-2025' ]
371406 > ( ) . toExtend < GeminiStructuredOutputOptions > ( )
407+ expectTypeOf <
408+ GeminiChatModelProviderOptionsByName [ 'gemini-3.1-flash-lite' ]
409+ > ( ) . toExtend < GeminiStructuredOutputOptions > ( )
372410 expectTypeOf <
373411 GeminiChatModelProviderOptionsByName [ 'gemini-2.0-flash' ]
374412 > ( ) . toExtend < GeminiStructuredOutputOptions > ( )
@@ -387,7 +425,9 @@ describe('Gemini Model Provider Options Type Assertions', () => {
387425 *
388426 * Models with full multimodal (text + image + audio + video + document):
389427 * - gemini-3-pro-preview
428+ * - gemini-3-flash-preview
390429 * - gemini-2.5-pro
430+ * - gemini-3.1-flash-lite
391431 * - gemini-2.5-flash-lite (and preview)
392432 *
393433 * Models with limited multimodal (text + image + audio + video, NO document):
@@ -439,6 +479,19 @@ describe('Gemini Model Input Modality Type Assertions', () => {
439479 } )
440480 } )
441481
482+ describe ( 'gemini-3.1-flash-lite (full multimodal)' , ( ) => {
483+ type Modalities = GeminiModelInputModalitiesByName [ 'gemini-3.1-flash-lite' ]
484+ type Message = ConstrainedModelMessage < Modalities >
485+
486+ it ( 'should allow all content part types' , ( ) => {
487+ expectTypeOf < MessageWithContent < TextPart > > ( ) . toExtend < Message > ( )
488+ expectTypeOf < MessageWithContent < ImagePart > > ( ) . toExtend < Message > ( )
489+ expectTypeOf < MessageWithContent < AudioPart > > ( ) . toExtend < Message > ( )
490+ expectTypeOf < MessageWithContent < VideoPart > > ( ) . toExtend < Message > ( )
491+ expectTypeOf < MessageWithContent < DocumentPart > > ( ) . toExtend < Message > ( )
492+ } )
493+ } )
494+
442495 describe ( 'gemini-2.5-flash-lite (full multimodal)' , ( ) => {
443496 type Modalities = GeminiModelInputModalitiesByName [ 'gemini-2.5-flash-lite' ]
444497 type Message = ConstrainedModelMessage < Modalities >
0 commit comments