Skip to content

Commit 2f7f964

Browse files
committed
feat: add gemini-2.5 and gemini-3 models to modelCapabilities.ts
Signed-off-by: Takuma IMAMURA <209989118+hyperfinitism@users.noreply.github.com>
1 parent 1ee8980 commit 2f7f964

1 file changed

Lines changed: 98 additions & 4 deletions

File tree

src/vs/workbench/contrib/void/common/modelCapabilities.ts

Lines changed: 98 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,11 @@ export const defaultModelsOfProvider = {
9999
'grok-3-mini-fast'
100100
],
101101
gemini: [ // https://ai.google.dev/gemini-api/docs/models/gemini
102+
'gemini-3-pro-preview',
103+
'gemini-3-flash-preview',
104+
'gemini-2.5-flash',
105+
'gemini-2.5-flash-lite',
106+
'gemini-2.5-pro',
102107
'gemini-2.5-pro-exp-03-25',
103108
'gemini-2.5-flash-preview-04-17',
104109
'gemini-2.0-flash',
@@ -414,7 +419,16 @@ const extensiveModelOptionsFallback: VoidStaticProviderInfo['modelOptionsFallbac
414419
};
415420
}
416421

417-
if (lower.includes('gemini') && (lower.includes('2.5') || lower.includes('2-5'))) return toFallback(geminiModelOptions, 'gemini-2.5-pro-exp-03-25')
422+
if (lower.includes('gemini') && (lower.includes('2.0') || lower.includes('2-0')) && lower.includes('flash') && lower.includes('lite')) return toFallback(geminiModelOptions, 'gemini-2.0-flash-lite')
423+
if (lower.includes('gemini') && (lower.includes('2.0') || lower.includes('2-0')) && lower.includes('flash')) return toFallback(geminiModelOptions, 'gemini-2.0-flash')
424+
if (lower.includes('gemini') && (lower.includes('2.0') || lower.includes('2-0'))) return toFallback(geminiModelOptions, 'gemini-2.0-flash')
425+
if (lower.includes('gemini') && (lower.includes('2.5') || lower.includes('2-5')) && lower.includes('pro')) return toFallback(geminiModelOptions, 'gemini-2.5-pro')
426+
if (lower.includes('gemini') && (lower.includes('2.5') || lower.includes('2-5')) && lower.includes('flash') && lower.includes('lite')) return toFallback(geminiModelOptions, 'gemini-2.5-flash-lite')
427+
if (lower.includes('gemini') && (lower.includes('2.5') || lower.includes('2-5')) && lower.includes('flash')) return toFallback(geminiModelOptions, 'gemini-2.5-flash')
428+
if (lower.includes('gemini') && lower.includes('3') && lower.includes('pro')) return toFallback(geminiModelOptions, 'gemini-3-pro-preview')
429+
if (lower.includes('gemini') && lower.includes('3') && lower.includes('flash')) return toFallback(geminiModelOptions, 'gemini-3-flash-preview')
430+
if (lower.includes('gemini') && lower.includes('3')) return toFallback(geminiModelOptions, 'gemini-3-flash-preview')
431+
if (lower.includes('gemini')) return toFallback(geminiModelOptions, 'gemini-2.5-flash')
418432

419433
if (lower.includes('claude-3-5') || lower.includes('claude-3.5')) return toFallback(anthropicModelOptions, 'claude-3-5-sonnet-20241022')
420434
if (lower.includes('claude')) return toFallback(anthropicModelOptions, 'claude-3-7-sonnet-20250219')
@@ -807,9 +821,89 @@ const xAISettings: VoidStaticProviderInfo = {
807821
// ---------------- GEMINI ----------------
808822
const geminiModelOptions = { // https://ai.google.dev/gemini-api/docs/pricing
809823
// https://ai.google.dev/gemini-api/docs/thinking#set-budget
824+
'gemini-3-pro-preview': {
825+
contextWindow: 1_048_576,
826+
reservedOutputTokenSpace: 8_192, // actual max: 65536
827+
cost: { input: 2.00, cache_write: 0.20, output: 12.00 },
828+
downloadable: false,
829+
supportsFIM: false,
830+
supportsSystemMessage: 'separated',
831+
specialToolFormat: 'gemini-style',
832+
reasoningCapabilities: {
833+
supportsReasoning: true,
834+
canTurnOffReasoning: false,
835+
canIOReasoning: false,
836+
reasoningSlider: { type: 'effort_slider', values: ['low', 'high'], default: 'low' },
837+
reasoningReservedOutputTokenSpace: 8192, // actual max: 65536
838+
},
839+
},
840+
'gemini-3-flash-preview': {
841+
contextWindow: 1_048_576,
842+
reservedOutputTokenSpace: 8_192, // actual max: 65536
843+
cost: { input: 0.50, cache_write: 0.05, output: 3.00 },
844+
downloadable: false,
845+
supportsFIM: false,
846+
supportsSystemMessage: 'separated',
847+
specialToolFormat: 'gemini-style',
848+
reasoningCapabilities: {
849+
supportsReasoning: true,
850+
canTurnOffReasoning: false,
851+
canIOReasoning: false,
852+
reasoningSlider: { type: 'effort_slider', values: ['minimal', 'low', 'medium', 'high'], default: 'low' },
853+
reasoningReservedOutputTokenSpace: 8192, // actual max: 65536
854+
},
855+
},
856+
'gemini-2.5-flash': {
857+
contextWindow: 1_048_576,
858+
reservedOutputTokenSpace: 8_192, // actual max: 65536
859+
cost: { input: 0.30, cache_write: 0.03, output: 2.50 },
860+
downloadable: false,
861+
supportsFIM: false,
862+
supportsSystemMessage: 'separated',
863+
specialToolFormat: 'gemini-style',
864+
reasoningCapabilities: {
865+
supportsReasoning: true,
866+
canTurnOffReasoning: true,
867+
canIOReasoning: false,
868+
reasoningSlider: { type: 'budget_slider', min: 0, max: 8192, default: 1024 }, // actual max: 24576
869+
reasoningReservedOutputTokenSpace: 8192, // actual max: 65536
870+
},
871+
},
872+
'gemini-2.5-flash-lite': {
873+
contextWindow: 1_048_576,
874+
reservedOutputTokenSpace: 8_192, // actual max: 65536
875+
cost: { input: 0.10, cache_write: 0.01, output: 0.40 },
876+
downloadable: false,
877+
supportsFIM: false,
878+
supportsSystemMessage: 'separated',
879+
specialToolFormat: 'gemini-style',
880+
reasoningCapabilities: {
881+
supportsReasoning: true,
882+
canTurnOffReasoning: true,
883+
canIOReasoning: false,
884+
reasoningSlider: { type: 'budget_slider', min: 512, max: 8192, default: 1024 }, // actual max: 24576
885+
reasoningReservedOutputTokenSpace: 8192, // actual max: 65536
886+
},
887+
},
888+
'gemini-2.5-pro': {
889+
contextWindow: 1_048_576,
890+
reservedOutputTokenSpace: 8_192, // actual max: 65536
891+
cost: { input: 1.25, cache_write: 0.125, output: 10.00 },
892+
downloadable: false,
893+
supportsFIM: false,
894+
supportsSystemMessage: 'separated',
895+
specialToolFormat: 'gemini-style',
896+
reasoningCapabilities: {
897+
supportsReasoning: true,
898+
canTurnOffReasoning: false,
899+
canIOReasoning: false,
900+
reasoningSlider: { type: 'budget_slider', min: 128, max: 8192, default: 1024 }, // actual max: 32768
901+
reasoningReservedOutputTokenSpace: 8192, // actual max: 65536
902+
},
903+
},
810904
'gemini-2.5-pro-preview-05-06': {
811905
contextWindow: 1_048_576,
812-
reservedOutputTokenSpace: 8_192,
906+
reservedOutputTokenSpace: 8_192, // actual max: 65536
813907
cost: { input: 0, output: 0 },
814908
downloadable: false,
815909
supportsFIM: false,
@@ -826,7 +920,7 @@ const geminiModelOptions = { // https://ai.google.dev/gemini-api/docs/pricing
826920
'gemini-2.0-flash-lite': {
827921
contextWindow: 1_048_576,
828922
reservedOutputTokenSpace: 8_192,
829-
cost: { input: 0, output: 0 },
923+
cost: { input: 0.075, output: 0.30 },
830924
downloadable: false,
831925
supportsFIM: false,
832926
supportsSystemMessage: 'separated',
@@ -868,7 +962,7 @@ const geminiModelOptions = { // https://ai.google.dev/gemini-api/docs/pricing
868962
'gemini-2.0-flash': {
869963
contextWindow: 1_048_576,
870964
reservedOutputTokenSpace: 8_192, // 8_192,
871-
cost: { input: 0.10, output: 0.40 },
965+
cost: { input: 0.10, cache_write: 0.025, output: 0.40 },
872966
downloadable: false,
873967
supportsFIM: false,
874968
supportsSystemMessage: 'separated',

0 commit comments

Comments
 (0)