()
| 252 | * @returns The default model setting to use |
| 253 | */ |
| 254 | export function getDefaultMainLoopModelSetting(): ModelName | ModelAlias { |
| 255 | // Ants default to defaultModel from flag config, or Opus 1M if not configured |
| 256 | if (isInternalBuild()) { |
| 257 | return ( |
| 258 | getAntModelOverrideConfig()?.defaultModel ?? |
| 259 | getDefaultOpusModel() + '[1m]' |
| 260 | ) |
| 261 | } |
| 262 | |
| 263 | // Noumena-managed first-party sessions default to GLM 5.2. |
| 264 | if (getAPIProvider() === 'firstParty') { |
| 265 | return getDefaultOpusModel() |
| 266 | } |
| 267 | |
| 268 | const session = getCurrentSubscriptionSessionState() |
| 269 | |
| 270 | // Max users get Opus as default |
| 271 | if (session.isMaxSubscriber) { |
| 272 | return getDefaultOpusModel() + (isOpus1mMergeEnabled() ? '[1m]' : '') |
| 273 | } |
| 274 | |
| 275 | // Team Premium gets Opus (same as Max) |
| 276 | if (session.isTeamPremiumSubscriber) { |
| 277 | return getDefaultOpusModel() + (isOpus1mMergeEnabled() ? '[1m]' : '') |
| 278 | } |
| 279 | |
| 280 | // PAYG (1P and 3P), Enterprise, Team Standard, and Pro get Flash as default. |
| 281 | // Note that PAYG (3P) may default to an older provider model. |
| 282 | return getDefaultFlashModel() |
| 283 | } |
| 284 | |
| 285 | /** |
| 286 | * Synchronous operation to get the default main loop model to use |
no test coverage detected