MCPcopy Create free account
hub / github.com/claude-code-best/claude-code / getModelMaxOutputTokens

Function getModelMaxOutputTokens

src/utils/context.ts:160–224  ·  view source on GitHub ↗
(model: string)

Source from the content-addressed store, hash-verified

158 * Returns the model's default and upper limit for max output tokens.
159 */
160export function getModelMaxOutputTokens(model: string): {
161 default: number
162 upperLimit: number
163} {
164 let defaultTokens: number
165 let upperLimit: number
166
167 if (process.env.USER_TYPE === 'ant') {
168 const antModel = resolveAntModel(model.toLowerCase())
169 if (antModel) {
170 defaultTokens = antModel.defaultMaxTokens ?? MAX_OUTPUT_TOKENS_DEFAULT
171 upperLimit = antModel.upperMaxTokensLimit ?? MAX_OUTPUT_TOKENS_UPPER_LIMIT
172 return { default: defaultTokens, upperLimit }
173 }
174 }
175
176 const m = getCanonicalName(model)
177
178 if (m.includes('opus-4-7')) {
179 defaultTokens = 64_000
180 upperLimit = 128_000
181 } else if (m.includes('opus-4-6')) {
182 defaultTokens = 64_000
183 upperLimit = 128_000
184 } else if (m.includes('sonnet-4-6')) {
185 defaultTokens = 32_000
186 upperLimit = 128_000
187 } else if (
188 m.includes('opus-4-5') ||
189 m.includes('sonnet-4') ||
190 m.includes('haiku-4')
191 ) {
192 defaultTokens = 32_000
193 upperLimit = 64_000
194 } else if (m.includes('opus-4-1') || m.includes('opus-4')) {
195 defaultTokens = 32_000
196 upperLimit = 32_000
197 } else if (m.includes('claude-3-opus')) {
198 defaultTokens = 4_096
199 upperLimit = 4_096
200 } else if (m.includes('claude-3-sonnet')) {
201 defaultTokens = 8_192
202 upperLimit = 8_192
203 } else if (m.includes('claude-3-haiku')) {
204 defaultTokens = 4_096
205 upperLimit = 4_096
206 } else if (m.includes('3-5-sonnet') || m.includes('3-5-haiku')) {
207 defaultTokens = 8_192
208 upperLimit = 8_192
209 } else if (m.includes('3-7-sonnet')) {
210 defaultTokens = 32_000
211 upperLimit = 64_000
212 } else {
213 defaultTokens = MAX_OUTPUT_TOKENS_DEFAULT
214 upperLimit = MAX_OUTPUT_TOKENS_UPPER_LIMIT
215 }
216
217 const cap = getModelCapability(model)

Callers 6

getStoredSessionCostsFunction · 0.85
addToTotalModelUsageFunction · 0.85
DoctorFunction · 0.85
queryModelOpenAIFunction · 0.85

Calls 3

resolveAntModelFunction · 0.85
getCanonicalNameFunction · 0.85
getModelCapabilityFunction · 0.85

Tested by

no test coverage detected