@@ -151,6 +151,8 @@ function instanceModels(
151151}
152152
153153// Each provider lists its models newest first, as the picker receives them.
154+ // Claude, Codex, and Antigravity mirror apps/server/src/provider/model-manifest.json;
155+ // Grok and OpenCode report their catalogs at runtime.
154156const catalog : CatalogModel [ ] = [
155157 ...instanceModels ( "claudeAgent" , "Claude" , [
156158 "Claude Opus 5.5" ,
@@ -169,18 +171,27 @@ const catalog: CatalogModel[] = [
169171 ] ) ,
170172 ...instanceModels ( "codex" , "Codex" , [
171173 "GPT-6.1 Sol" ,
172- "GPT-5.6-Sol" ,
173- "GPT-5.6-Terra" ,
174+ "GPT-6 Astra" ,
175+ "GPT-6 Luna" ,
176+ "GPT-6 Sol" ,
177+ "GPT-5.6 Sol" ,
178+ "GPT-5.6 Terra" ,
179+ "GPT-5.6 Luna" ,
174180 "GPT-5.5" ,
175- "GPT-5.4" ,
176- "GPT-5" ,
177181 ] ) ,
178182 ...instanceModels ( "grok" , "Grok" , [ "Grok 4.7" , "Grok 4.6" , "Grok 4.5" ] ) ,
179183 ...instanceModels ( "antigravity" , "Antigravity" , [
180184 "Gemini 3.8 Flash (High)" ,
181185 "Gemini 3.8 Flash (Medium)" ,
182186 "Gemini 3.8 Flash (Low)" ,
183- "Gemini 3.1 Pro" ,
187+ "Gemini 3.7 Flash (High)" ,
188+ "Gemini 3.7 Flash (Medium)" ,
189+ "Gemini 3.7 Flash (Low)" ,
190+ "Gemini 3.6 Flash (High)" ,
191+ "Gemini 3.6 Flash (Medium)" ,
192+ "Gemini 3.6 Flash (Low)" ,
193+ "Gemini 3.1 Pro (High)" ,
194+ "Gemini 3.1 Pro (Low)" ,
184195 ] ) ,
185196 {
186197 driverKind : "opencode" ,
@@ -222,10 +233,36 @@ describe("rankModelPickerSearch", () => {
222233 [ "sonnet" , [ "Claude Sonnet 5.5" , "Claude Sonnet 5" , "Claude Sonnet 4.6" ] ] ,
223234 [ "fable" , [ "Claude Fable 5.1" , "Claude Fable 5" ] ] ,
224235 [ "haiku" , [ "Claude Haiku 5.5" , "Claude Haiku 4.5" ] ] ,
225- [ "gpt" , [ "GPT-6.1 Sol" , "GPT-5.6-Sol" , "GPT-5.6-Terra" , "GPT-5.5" , "GPT-5.4" , "GPT-5" ] ] ,
226- [ "sol" , [ "GPT-6.1 Sol" , "GPT-5.6-Sol" ] ] ,
236+ [
237+ "gpt" ,
238+ [
239+ "GPT-6.1 Sol" ,
240+ "GPT-6 Astra" ,
241+ "GPT-6 Luna" ,
242+ "GPT-6 Sol" ,
243+ "GPT-5.6 Sol" ,
244+ "GPT-5.6 Terra" ,
245+ "GPT-5.6 Luna" ,
246+ "GPT-5.5" ,
247+ ] ,
248+ ] ,
249+ [ "sol" , [ "GPT-6.1 Sol" , "GPT-6 Sol" , "GPT-5.6 Sol" ] ] ,
250+ [ "luna" , [ "GPT-6 Luna" , "GPT-5.6 Luna" ] ] ,
227251 [ "grok" , [ "Grok 4.7" , "Grok 4.6" , "Grok 4.5" ] ] ,
228- [ "flash" , [ "Gemini 3.8 Flash (High)" , "Gemini 3.8 Flash (Medium)" , "Gemini 3.8 Flash (Low)" ] ] ,
252+ [
253+ "flash" ,
254+ [
255+ "Gemini 3.8 Flash (High)" ,
256+ "Gemini 3.8 Flash (Medium)" ,
257+ "Gemini 3.8 Flash (Low)" ,
258+ "Gemini 3.7 Flash (High)" ,
259+ "Gemini 3.7 Flash (Medium)" ,
260+ "Gemini 3.7 Flash (Low)" ,
261+ "Gemini 3.6 Flash (High)" ,
262+ "Gemini 3.6 Flash (Medium)" ,
263+ "Gemini 3.6 Flash (Low)" ,
264+ ] ,
265+ ] ,
229266 [ "kimi" , [ "Kimi K3" , "Kimi K2.5" , "Kimi K2" ] ] ,
230267 ] ) ( "lists equally good matches for %j newest first" , ( query , expected ) => {
231268 // Loose fuzzy matches from other families may follow; they rank last.
@@ -245,13 +282,7 @@ describe("rankModelPickerSearch", () => {
245282 } ) ;
246283
247284 it ( "still ranks an exact name above newer models that extend it" , ( ) => {
248- expect ( search ( "gpt-5" ) ) . toEqual ( [
249- "GPT-5" ,
250- "GPT-5.6-Sol" ,
251- "GPT-5.6-Terra" ,
252- "GPT-5.5" ,
253- "GPT-5.4" ,
254- ] ) ;
285+ expect ( search ( "gpt-6 sol" ) . slice ( 0 , 2 ) ) . toEqual ( [ "GPT-6 Sol" , "GPT-6.1 Sol" ] ) ;
255286 expect ( search ( "claude opus 5" ) . slice ( 0 , 2 ) ) . toEqual ( [ "Claude Opus 5" , "Claude Opus 5.5" ] ) ;
256287 expect ( search ( "Grok 4.6" ) [ 0 ] ) . toBe ( "Grok 4.6" ) ;
257288 } ) ;
0 commit comments