MCPcopy Create free account
hub / github.com/HELPMEEADICE/doge-code / getModelMaxOutputTokens

Function getModelMaxOutputTokens

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

Source from the content-addressed store, hash-verified

195 * Returns the model's default and upper limit for max output tokens.
196 */
197export function getModelMaxOutputTokens(model: string): {
198 default: number
199 upperLimit: number
200} {
201 let defaultTokens: number
202 let upperLimit: number
203
204 if (process.env.USER_TYPE === 'ant') {
205 const antModel = resolveAntModel(model.toLowerCase())
206 if (antModel) {
207 defaultTokens = antModel.defaultMaxTokens ?? MAX_OUTPUT_TOKENS_DEFAULT
208 upperLimit = antModel.upperMaxTokensLimit ?? MAX_OUTPUT_TOKENS_UPPER_LIMIT
209 return { default: defaultTokens, upperLimit }
210 }
211 }
212
213 const m = getCanonicalName(model)
214
215 if (m.includes('opus-4-6')) {
216 defaultTokens = 64_000
217 upperLimit = 128_000
218 } else if (m.includes('sonnet-4-6')) {
219 defaultTokens = 32_000
220 upperLimit = 128_000
221 } else if (
222 m.includes('opus-4-5') ||
223 m.includes('sonnet-4') ||
224 m.includes('haiku-4')
225 ) {
226 defaultTokens = 32_000
227 upperLimit = 64_000
228 } else if (m.includes('opus-4-1') || m.includes('opus-4')) {
229 defaultTokens = 32_000
230 upperLimit = 32_000
231 } else if (m.includes('claude-3-opus')) {
232 defaultTokens = 4_096
233 upperLimit = 4_096
234 } else if (m.includes('claude-3-sonnet')) {
235 defaultTokens = 8_192
236 upperLimit = 8_192
237 } else if (m.includes('claude-3-haiku')) {
238 defaultTokens = 4_096
239 upperLimit = 4_096
240 } else if (m.includes('3-5-sonnet') || m.includes('3-5-haiku')) {
241 defaultTokens = 8_192
242 upperLimit = 8_192
243 } else if (m.includes('3-7-sonnet')) {
244 defaultTokens = 32_000
245 upperLimit = 64_000
246 } else {
247 defaultTokens = MAX_OUTPUT_TOKENS_DEFAULT
248 upperLimit = MAX_OUTPUT_TOKENS_UPPER_LIMIT
249 }
250
251 const cap = getModelCapability(model)
252 if (cap?.max_tokens && cap.max_tokens >= 4_096) {
253 upperLimit = cap.max_tokens
254 defaultTokens = Math.min(defaultTokens, upperLimit)

Callers 6

getStoredSessionCostsFunction · 0.85
addToTotalModelUsageFunction · 0.85
DoctorFunction · 0.85

Calls 3

resolveAntModelFunction · 0.85
getCanonicalNameFunction · 0.85
getModelCapabilityFunction · 0.85

Tested by

no test coverage detected