Skip to content

Commit 59c8522

Browse files
colegottdankclaude
andcommitted
feat(cost): add Novita endpoints for gemini-3-pro-preview and gemini-3-flash-preview
Add Novita as a provider option for both Gemini 3 preview models to reduce reliance on OpenRouter as fallback when Vertex/Google AI Studio have rate limiting issues. Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent e922884 commit 59c8522

File tree

3 files changed

+277
-7
lines changed

3 files changed

+277
-7
lines changed

packages/__tests__/cost/__snapshots__/registrySnapshots.test.ts.snap

Lines changed: 210 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1061,6 +1061,70 @@ exports[`Registry Snapshots endpoint configurations snapshot 1`] = `
10611061
],
10621062
},
10631063
},
1064+
"anthropic/claude-4.6-sonnet": {
1065+
"claude-4.6-sonnet:anthropic": {
1066+
"context": 1000000,
1067+
"crossRegion": false,
1068+
"maxTokens": 64000,
1069+
"modelId": "claude-sonnet-4-6",
1070+
"parameters": [
1071+
"include_reasoning",
1072+
"max_tokens",
1073+
"reasoning",
1074+
"stop",
1075+
"temperature",
1076+
"tool_choice",
1077+
"tools",
1078+
],
1079+
"provider": "anthropic",
1080+
"ptbEnabled": true,
1081+
"regions": [
1082+
"*",
1083+
],
1084+
},
1085+
"claude-4.6-sonnet:bedrock": {
1086+
"context": 1000000,
1087+
"crossRegion": true,
1088+
"maxTokens": 64000,
1089+
"modelId": "anthropic.claude-sonnet-4-6-20260217-v1:0",
1090+
"parameters": [
1091+
"include_reasoning",
1092+
"max_tokens",
1093+
"reasoning",
1094+
"stop",
1095+
"temperature",
1096+
"tool_choice",
1097+
"tools",
1098+
"top_k",
1099+
"top_p",
1100+
],
1101+
"provider": "bedrock",
1102+
"ptbEnabled": true,
1103+
"regions": [
1104+
"us-east-1",
1105+
],
1106+
},
1107+
"claude-4.6-sonnet:vertex": {
1108+
"context": 1000000,
1109+
"crossRegion": true,
1110+
"maxTokens": 64000,
1111+
"modelId": "claude-sonnet-4-6@20260217",
1112+
"parameters": [
1113+
"include_reasoning",
1114+
"max_tokens",
1115+
"reasoning",
1116+
"stop",
1117+
"temperature",
1118+
"tool_choice",
1119+
"tools",
1120+
],
1121+
"provider": "vertex",
1122+
"ptbEnabled": true,
1123+
"regions": [
1124+
"global",
1125+
],
1126+
},
1127+
},
10641128
"anthropic/claude-haiku-4-5-20251001": {
10651129
"claude-haiku-4-5-20251001:anthropic": {
10661130
"context": 200000,
@@ -2420,6 +2484,30 @@ exports[`Registry Snapshots endpoint configurations snapshot 1`] = `
24202484
"*",
24212485
],
24222486
},
2487+
"gemini-3-pro-preview:novita": {
2488+
"context": 1048576,
2489+
"crossRegion": false,
2490+
"maxTokens": 65536,
2491+
"modelId": "google/gemini-3-pro-preview",
2492+
"parameters": [
2493+
"include_reasoning",
2494+
"max_tokens",
2495+
"reasoning",
2496+
"response_format",
2497+
"seed",
2498+
"stop",
2499+
"structured_outputs",
2500+
"temperature",
2501+
"tool_choice",
2502+
"tools",
2503+
"top_p",
2504+
],
2505+
"provider": "novita",
2506+
"ptbEnabled": true,
2507+
"regions": [
2508+
"*",
2509+
],
2510+
},
24232511
"gemini-3-pro-preview:openrouter": {
24242512
"context": 1048576,
24252513
"crossRegion": false,
@@ -2491,6 +2579,30 @@ exports[`Registry Snapshots endpoint configurations snapshot 1`] = `
24912579
"*",
24922580
],
24932581
},
2582+
"gemini-3-flash-preview:novita": {
2583+
"context": 1048576,
2584+
"crossRegion": false,
2585+
"maxTokens": 65536,
2586+
"modelId": "google/gemini-3-flash-preview",
2587+
"parameters": [
2588+
"include_reasoning",
2589+
"max_tokens",
2590+
"reasoning",
2591+
"response_format",
2592+
"seed",
2593+
"stop",
2594+
"structured_outputs",
2595+
"temperature",
2596+
"tool_choice",
2597+
"tools",
2598+
"top_p",
2599+
],
2600+
"provider": "novita",
2601+
"ptbEnabled": true,
2602+
"regions": [
2603+
"*",
2604+
],
2605+
},
24942606
"gemini-3-flash-preview:openrouter": {
24952607
"context": 1048576,
24962608
"crossRegion": false,
@@ -6862,6 +6974,11 @@ exports[`Registry Snapshots model coverage snapshot 1`] = `
68626974
"openrouter",
68636975
"vertex",
68646976
],
6977+
"anthropic/claude-4.6-sonnet": [
6978+
"anthropic",
6979+
"bedrock",
6980+
"vertex",
6981+
],
68656982
"anthropic/claude-haiku-4-5-20251001": [
68666983
"anthropic",
68676984
"bedrock",
@@ -6951,11 +7068,13 @@ exports[`Registry Snapshots model coverage snapshot 1`] = `
69517068
],
69527069
"google/gemini-3": [
69537070
"google-ai-studio",
7071+
"novita",
69547072
"openrouter",
69557073
"vertex",
69567074
],
69577075
"google/gemini-3-flash-preview": [
69587076
"google-ai-studio",
7077+
"novita",
69597078
"openrouter",
69607079
"vertex",
69617080
],
@@ -7707,6 +7826,60 @@ exports[`Registry Snapshots pricing snapshot 1`] = `
77077826
},
77087827
],
77097828
},
7829+
"anthropic/claude-4.6-sonnet": {
7830+
"anthropic": [
7831+
{
7832+
"cacheMultipliers": {
7833+
"cachedInput": 0.1,
7834+
"write1h": 2,
7835+
"write5m": 1.25,
7836+
},
7837+
"input": 0.000003,
7838+
"output": 0.000015,
7839+
"threshold": 0,
7840+
"web_search": 0.01,
7841+
},
7842+
{
7843+
"input": 0.000006,
7844+
"output": 0.0000225,
7845+
"threshold": 200000,
7846+
},
7847+
],
7848+
"bedrock": [
7849+
{
7850+
"cacheMultipliers": {
7851+
"cachedInput": 0.1,
7852+
"write5m": 1.25,
7853+
},
7854+
"input": 0.000003,
7855+
"output": 0.000015,
7856+
"threshold": 0,
7857+
"web_search": 0.01,
7858+
},
7859+
{
7860+
"input": 0.000006,
7861+
"output": 0.0000225,
7862+
"threshold": 200000,
7863+
},
7864+
],
7865+
"vertex": [
7866+
{
7867+
"cacheMultipliers": {
7868+
"cachedInput": 0.1,
7869+
"write5m": 1.25,
7870+
},
7871+
"input": 0.000003,
7872+
"output": 0.000015,
7873+
"threshold": 0,
7874+
"web_search": 0.01,
7875+
},
7876+
{
7877+
"input": 0.000006,
7878+
"output": 0.0000225,
7879+
"threshold": 200000,
7880+
},
7881+
],
7882+
},
77107883
"anthropic/claude-haiku-4-5-20251001": {
77117884
"anthropic": [
77127885
{
@@ -8408,6 +8581,18 @@ exports[`Registry Snapshots pricing snapshot 1`] = `
84088581
"threshold": 200000,
84098582
},
84108583
],
8584+
"novita": [
8585+
{
8586+
"input": 0.000002,
8587+
"output": 0.000012,
8588+
"threshold": 0,
8589+
},
8590+
{
8591+
"input": 0.000004,
8592+
"output": 0.000018,
8593+
"threshold": 200000,
8594+
},
8595+
],
84118596
"openrouter": [
84128597
{
84138598
"input": 0.00000211,
@@ -8452,6 +8637,13 @@ exports[`Registry Snapshots pricing snapshot 1`] = `
84528637
"threshold": 0,
84538638
},
84548639
],
8640+
"novita": [
8641+
{
8642+
"input": 5e-7,
8643+
"output": 0.000003,
8644+
"threshold": 0,
8645+
},
8646+
],
84558647
"openrouter": [
84568648
{
84578649
"input": 5.275e-7,
@@ -9266,6 +9458,14 @@ exports[`Registry Snapshots verify registry state 1`] = `
92669458
"vertex",
92679459
],
92689460
},
9461+
{
9462+
"model": "claude-4.6-sonnet",
9463+
"providers": [
9464+
"anthropic",
9465+
"bedrock",
9466+
"vertex",
9467+
],
9468+
},
92699469
{
92709470
"model": "claude-haiku-4-5-20251001",
92719471
"providers": [
@@ -9421,6 +9621,7 @@ exports[`Registry Snapshots verify registry state 1`] = `
94219621
"model": "gemini-3-flash-preview",
94229622
"providers": [
94239623
"google-ai-studio",
9624+
"novita",
94249625
"openrouter",
94259626
"vertex",
94269627
],
@@ -9437,6 +9638,7 @@ exports[`Registry Snapshots verify registry state 1`] = `
94379638
"model": "gemini-3-pro-preview",
94389639
"providers": [
94399640
"google-ai-studio",
9641+
"novita",
94409642
"openrouter",
94419643
"vertex",
94429644
],
@@ -10022,7 +10224,7 @@ exports[`Registry Snapshots verify registry state 1`] = `
1002210224
],
1002310225
"providerBreakdown": [
1002410226
{
10025-
"modelCount": 14,
10227+
"modelCount": 15,
1002610228
"provider": "anthropic",
1002710229
},
1002810230
{
@@ -10034,7 +10236,7 @@ exports[`Registry Snapshots verify registry state 1`] = `
1003410236
"provider": "baseten",
1003510237
},
1003610238
{
10037-
"modelCount": 13,
10239+
"modelCount": 14,
1003810240
"provider": "bedrock",
1003910241
},
1004010242
{
@@ -10082,7 +10284,7 @@ exports[`Registry Snapshots verify registry state 1`] = `
1008210284
"provider": "nebius",
1008310285
},
1008410286
{
10085-
"modelCount": 22,
10287+
"modelCount": 24,
1008610288
"provider": "novita",
1008710289
},
1008810290
{
@@ -10098,7 +10300,7 @@ exports[`Registry Snapshots verify registry state 1`] = `
1009810300
"provider": "perplexity",
1009910301
},
1010010302
{
10101-
"modelCount": 20,
10303+
"modelCount": 21,
1010210304
"provider": "vertex",
1010310305
},
1010410306
{
@@ -10116,6 +10318,7 @@ exports[`Registry Snapshots verify registry state 1`] = `
1011610318
"claude-4.5-opus",
1011710319
"claude-4.5-sonnet",
1011810320
"claude-4.6-opus",
10321+
"claude-4.6-sonnet",
1011910322
"claude-haiku-4-5-20251001",
1012010323
"claude-opus-4",
1012110324
"claude-opus-4-1",
@@ -10220,9 +10423,9 @@ exports[`Registry Snapshots verify registry state 1`] = `
1022010423
"claude-3.5-haiku:anthropic:*",
1022110424
],
1022210425
"totalArchivedConfigs": 0,
10223-
"totalEndpoints": 307,
10224-
"totalModelProviderConfigs": 307,
10225-
"totalModelsWithPtb": 103,
10426+
"totalEndpoints": 312,
10427+
"totalModelProviderConfigs": 312,
10428+
"totalModelsWithPtb": 104,
1022610429
"totalProviders": 21,
1022710430
}
1022810431
`;

packages/cost/models/authors/google/gemini-3-flash-preview/endpoints.ts

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -116,6 +116,37 @@ export const endpoints = {
116116
"*": {},
117117
},
118118
},
119+
"gemini-3-flash-preview:novita": {
120+
provider: "novita",
121+
author: "google",
122+
providerModelId: "google/gemini-3-flash-preview",
123+
pricing: [
124+
{
125+
threshold: 0,
126+
input: 0.0000005, // $0.50/1M tokens (same as Google)
127+
output: 0.000003, // $3/1M tokens (same as Google)
128+
},
129+
],
130+
contextLength: 1_048_576,
131+
maxCompletionTokens: 65_536,
132+
supportedParameters: [
133+
"include_reasoning",
134+
"max_tokens",
135+
"reasoning",
136+
"response_format",
137+
"seed",
138+
"stop",
139+
"structured_outputs",
140+
"temperature",
141+
"tool_choice",
142+
"tools",
143+
"top_p",
144+
],
145+
ptbEnabled: true,
146+
endpointConfigs: {
147+
"*": {},
148+
},
149+
},
119150
} satisfies Partial<
120151
Record<`${Gemini3FlashPreviewModelName}:${ModelProviderName}`, ModelProviderConfig>
121152
>;

0 commit comments

Comments
 (0)