MCPcopy
hub / github.com/claude-code-best/claude-code / getModelOptionsBase

Function getModelOptionsBase

src/utils/model/modelOptions.ts:363–470  ·  view source on GitHub ↗
(fastMode = false)

Source from the content-addressed store, hash-verified

361// @[MODEL LAUNCH]: Update the model picker lists below to include/reorder options for the new model.
362// Each user tier (ant, Max/Team Premium, Pro/Team Standard/Enterprise, PAYG 1P, PAYG 3P) has its own list.
363function getModelOptionsBase(fastMode = false): ModelOption[] {
364 if (process.env.USER_TYPE === 'ant') {
365 // Build options from antModels config
366 const antModelOptions: ModelOption[] = getAntModels().map(m => ({
367 value: m.alias,
368 label: m.label,
369 description: m.description ?? `[ANT-ONLY] ${m.label} (${m.model})`,
370 }))
371
372 return [
373 getDefaultOptionForUser(),
374 ...antModelOptions,
375 getMergedOpus1MOption(fastMode),
376 getSonnet46Option(),
377 getSonnet46_1MOption(),
378 getHaiku45Option(),
379 ]
380 }
381
382 if (getAPIProvider() === 'openai' && isChatGPTAuthMode()) {
383 return getChatGPTCodexModelOptions()
384 }
385
386 if (isClaudeAISubscriber()) {
387 if (isMaxSubscriber() || isTeamPremiumSubscriber()) {
388 // Max and Team Premium users: Default = Opus 4.7 1M (merged), plus Opus 4.6 1M
389 const premiumOptions = [getDefaultOptionForUser(fastMode)]
390 premiumOptions.push(getOpus46_1MOption(fastMode))
391
392 premiumOptions.push(MaxSonnet46Option)
393 if (checkSonnet1mAccess()) {
394 premiumOptions.push(getMaxSonnet46_1MOption())
395 }
396
397 premiumOptions.push(MaxHaiku45Option)
398 return premiumOptions
399 }
400
401 // Pro/Team Standard/Enterprise users: Sonnet is default, show Opus 4.7 1M + Opus 4.6 1M
402 const standardOptions = [getDefaultOptionForUser(fastMode)]
403
404 if (isOpus1mMergeEnabled()) {
405 standardOptions.push(getMergedOpus1MOption(fastMode))
406 } else {
407 standardOptions.push(getMaxOpusOption(fastMode))
408 if (checkOpus1mAccess()) {
409 standardOptions.push(getMaxOpus47_1MOption(fastMode))
410 }
411 }
412 standardOptions.push(getOpus46_1MOption(fastMode))
413
414 if (checkSonnet1mAccess()) {
415 standardOptions.push(getMaxSonnet46_1MOption())
416 }
417
418 standardOptions.push(MaxHaiku45Option)
419 return standardOptions
420 }

Callers 1

getModelOptionsFunction · 0.85

Calls 15

getAntModelsFunction · 0.85
getDefaultOptionForUserFunction · 0.85
getMergedOpus1MOptionFunction · 0.85
getSonnet46OptionFunction · 0.85
getSonnet46_1MOptionFunction · 0.85
getHaiku45OptionFunction · 0.85
getAPIProviderFunction · 0.85
isChatGPTAuthModeFunction · 0.85
isMaxSubscriberFunction · 0.85
isTeamPremiumSubscriberFunction · 0.85
getOpus46_1MOptionFunction · 0.85

Tested by

no test coverage detected