@@ -73,24 +73,56 @@ let lastOutputTokens = 0;
7373
7474// Model shortcuts for quick switching
7575const MODEL_SHORTCUTS : Record < string , string > = {
76+ // Routing profiles
7677 auto : 'blockrun/auto' ,
7778 smart : 'blockrun/auto' ,
7879 eco : 'blockrun/eco' ,
7980 premium : 'blockrun/premium' ,
80- gpt : 'openai/gpt-5.4' ,
81- gpt5 : 'openai/gpt-5.4' ,
82- 'gpt-5' : 'openai/gpt-5.4' ,
83- 'gpt-5.4' : 'openai/gpt-5.4' ,
81+ // Anthropic
8482 sonnet : 'anthropic/claude-sonnet-4.6' ,
8583 claude : 'anthropic/claude-sonnet-4.6' ,
8684 opus : 'anthropic/claude-opus-4.6' ,
8785 haiku : 'anthropic/claude-haiku-4.5' ,
88- deepseek : 'deepseek/deepseek-chat' ,
86+ // OpenAI
87+ gpt : 'openai/gpt-5.4' ,
88+ gpt5 : 'openai/gpt-5.4' ,
89+ 'gpt-5' : 'openai/gpt-5.4' ,
90+ 'gpt-5.4' : 'openai/gpt-5.4' ,
91+ 'gpt-5.4-pro' : 'openai/gpt-5.4-pro' ,
92+ 'gpt-5.3' : 'openai/gpt-5.3' ,
93+ 'gpt-5.2' : 'openai/gpt-5.2' ,
94+ 'gpt-5.2-pro' : 'openai/gpt-5.2-pro' ,
95+ 'gpt-4.1' : 'openai/gpt-4.1' ,
96+ codex : 'openai/gpt-5.3-codex' ,
97+ nano : 'openai/gpt-5-nano' ,
98+ mini : 'openai/gpt-5-mini' ,
99+ o3 : 'openai/o3' ,
100+ o4 : 'openai/o4-mini' ,
101+ 'o4-mini' : 'openai/o4-mini' ,
102+ o1 : 'openai/o1' ,
103+ // Google
89104 gemini : 'google/gemini-2.5-pro' ,
105+ flash : 'google/gemini-2.5-flash' ,
106+ 'gemini-3' : 'google/gemini-3.1-pro' ,
107+ // xAI
90108 grok : 'xai/grok-3' ,
91- free : 'nvidia/gpt-oss-120b' ,
92- mini : 'openai/gpt-5-mini' ,
109+ 'grok-4' : 'xai/grok-4-0709' ,
110+ 'grok-fast' : 'xai/grok-4-1-fast-reasoning' ,
111+ // DeepSeek
112+ deepseek : 'deepseek/deepseek-chat' ,
113+ r1 : 'deepseek/deepseek-reasoner' ,
114+ // Free models
115+ free : 'nvidia/nemotron-ultra-253b' ,
116+ nemotron : 'nvidia/nemotron-ultra-253b' ,
117+ 'deepseek-free' : 'nvidia/deepseek-v3.2' ,
118+ devstral : 'nvidia/devstral-2-123b' ,
119+ 'qwen-coder' : 'nvidia/qwen3-coder-480b' ,
120+ maverick : 'nvidia/llama-4-maverick' ,
121+ // Minimax
122+ minimax : 'minimax/minimax-m2.7' ,
123+ // Others
93124 glm : 'zai/glm-5' ,
125+ kimi : 'moonshot/kimi-k2.5' ,
94126} ;
95127
96128// Model pricing (per 1M tokens) - used for stats
@@ -100,27 +132,68 @@ const MODEL_PRICING: Record<string, { input: number; output: number }> = {
100132 'blockrun/eco' : { input : 0.2 , output : 1.0 } ,
101133 'blockrun/premium' : { input : 3.0 , output : 15.0 } ,
102134 'blockrun/free' : { input : 0 , output : 0 } ,
103- // Individual models
135+ // FREE - NVIDIA models
136+ 'nvidia/gpt-oss-120b' : { input : 0 , output : 0 } ,
137+ 'nvidia/gpt-oss-20b' : { input : 0 , output : 0 } ,
138+ 'nvidia/nemotron-ultra-253b' : { input : 0 , output : 0 } ,
139+ 'nvidia/nemotron-3-super-120b' : { input : 0 , output : 0 } ,
140+ 'nvidia/nemotron-super-49b' : { input : 0 , output : 0 } ,
141+ 'nvidia/deepseek-v3.2' : { input : 0 , output : 0 } ,
142+ 'nvidia/mistral-large-3-675b' : { input : 0 , output : 0 } ,
143+ 'nvidia/qwen3-coder-480b' : { input : 0 , output : 0 } ,
144+ 'nvidia/devstral-2-123b' : { input : 0 , output : 0 } ,
145+ 'nvidia/glm-4.7' : { input : 0 , output : 0 } ,
146+ 'nvidia/llama-4-maverick' : { input : 0 , output : 0 } ,
147+ // Anthropic
104148 'anthropic/claude-sonnet-4.6' : { input : 3.0 , output : 15.0 } ,
105149 'anthropic/claude-opus-4.6' : { input : 5.0 , output : 25.0 } ,
106150 'anthropic/claude-haiku-4.5' : { input : 1.0 , output : 5.0 } ,
107- 'openai/gpt-5.4' : { input : 2.5 , output : 15.0 } ,
151+ // OpenAI
152+ 'openai/gpt-5-nano' : { input : 0.05 , output : 0.4 } ,
153+ 'openai/gpt-4.1-nano' : { input : 0.1 , output : 0.4 } ,
154+ 'openai/gpt-4o-mini' : { input : 0.15 , output : 0.6 } ,
108155 'openai/gpt-5-mini' : { input : 0.25 , output : 2.0 } ,
109- 'google/gemini-2.5-pro' : { input : 1.25 , output : 10.0 } ,
156+ 'openai/gpt-4.1-mini' : { input : 0.4 , output : 1.6 } ,
157+ 'openai/gpt-5.2' : { input : 1.75 , output : 14.0 } ,
158+ 'openai/gpt-5.3' : { input : 1.75 , output : 14.0 } ,
159+ 'openai/gpt-5.3-codex' : { input : 1.75 , output : 14.0 } ,
160+ 'openai/gpt-4.1' : { input : 2.0 , output : 8.0 } ,
161+ 'openai/o3' : { input : 2.0 , output : 8.0 } ,
162+ 'openai/gpt-4o' : { input : 2.5 , output : 10.0 } ,
163+ 'openai/gpt-5.4' : { input : 2.5 , output : 15.0 } ,
164+ 'openai/o1-mini' : { input : 1.1 , output : 4.4 } ,
165+ 'openai/o3-mini' : { input : 1.1 , output : 4.4 } ,
166+ 'openai/o4-mini' : { input : 1.1 , output : 4.4 } ,
167+ 'openai/o1' : { input : 15.0 , output : 60.0 } ,
168+ 'openai/gpt-5.2-pro' : { input : 21.0 , output : 168.0 } ,
169+ 'openai/gpt-5.4-pro' : { input : 30.0 , output : 180.0 } ,
170+ // Google
171+ 'google/gemini-2.5-flash-lite' : { input : 0.1 , output : 0.4 } ,
110172 'google/gemini-2.5-flash' : { input : 0.3 , output : 2.5 } ,
111- 'deepseek/deepseek-chat' : { input : 0.28 , output : 0.42 } ,
112- 'deepseek/deepseek-reasoner' : { input : 0.55 , output : 2.19 } ,
113- 'xai/grok-3' : { input : 3.0 , output : 15.0 } ,
173+ 'google/gemini-3-flash-preview' : { input : 0.5 , output : 3.0 } ,
174+ 'google/gemini-2.5-pro' : { input : 1.25 , output : 10.0 } ,
175+ 'google/gemini-3-pro-preview' : { input : 2.0 , output : 12.0 } ,
176+ 'google/gemini-3.1-pro' : { input : 2.0 , output : 12.0 } ,
177+ // xAI
114178 'xai/grok-4-fast' : { input : 0.2 , output : 0.5 } ,
179+ 'xai/grok-4-fast-reasoning' : { input : 0.2 , output : 0.5 } ,
180+ 'xai/grok-4-1-fast' : { input : 0.2 , output : 0.5 } ,
115181 'xai/grok-4-1-fast-reasoning' : { input : 0.2 , output : 0.5 } ,
116- 'nvidia/gpt-oss-120b' : { input : 0 , output : 0 } ,
117- 'zai/glm-5' : { input : 1.0 , output : 3.2 } ,
182+ 'xai/grok-4-0709' : { input : 0.2 , output : 1.5 } ,
183+ 'xai/grok-3-mini' : { input : 0.3 , output : 0.5 } ,
184+ 'xai/grok-2-vision' : { input : 2.0 , output : 10.0 } ,
185+ 'xai/grok-3' : { input : 3.0 , output : 15.0 } ,
186+ // DeepSeek
187+ 'deepseek/deepseek-chat' : { input : 0.28 , output : 0.42 } ,
188+ 'deepseek/deepseek-reasoner' : { input : 0.28 , output : 0.42 } ,
189+ // Minimax
190+ 'minimax/minimax-m2.7' : { input : 0.3 , output : 1.2 } ,
191+ 'minimax/minimax-m2.5' : { input : 0.3 , output : 1.2 } ,
192+ // Others
118193 'moonshot/kimi-k2.5' : { input : 0.6 , output : 3.0 } ,
119- 'openai/gpt-5.3-codex' : { input : 2.5 , output : 10.0 } ,
120- 'openai/o3' : { input : 2.0 , output : 8.0 } ,
121- 'openai/o4-mini' : { input : 1.1 , output : 4.4 } ,
122- 'google/gemini-2.5-flash-lite' : { input : 0.08 , output : 0.3 } ,
123- 'google/gemini-3.1-pro' : { input : 1.25 , output : 10.0 } ,
194+ 'nvidia/kimi-k2.5' : { input : 0.55 , output : 2.5 } ,
195+ 'zai/glm-5' : { input : 1.0 , output : 3.2 } ,
196+ 'zai/glm-5-turbo' : { input : 1.2 , output : 4.0 } ,
124197} ;
125198
126199function estimateCost (
0 commit comments