/ utils / extraUsage.ts
extraUsage.ts
 1  import { isClaudeAISubscriber } from './auth.js'
 2  import { has1mContext } from './context.js'
 3  
 4  export function isBilledAsExtraUsage(
 5    model: string | null,
 6    isFastMode: boolean,
 7    isOpus1mMerged: boolean,
 8  ): boolean {
 9    if (!isClaudeAISubscriber()) return false
10    if (isFastMode) return true
11    if (model === null || !has1mContext(model)) return false
12  
13    const m = model
14      .toLowerCase()
15      .replace(/\[1m\]$/, '')
16      .trim()
17    const isOpus46 = m === 'opus' || m.includes('opus-4-6')
18    const isSonnet46 = m === 'sonnet' || m.includes('sonnet-4-6')
19  
20    if (isOpus46 && isOpus1mMerged) return false
21  
22    return isOpus46 || isSonnet46
23  }