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

Function getContextWindowForModel

src/utils/context.ts:99–146  ·  view source on GitHub ↗
(
  model: string,
  betas?: string[],
)

Source from the content-addressed store, hash-verified

97}
98
99export function getContextWindowForModel(
100 model: string,
101 betas?: string[],
102): number {
103 // Allow override via environment variable (ant-only)
104 // This takes precedence over all other context window resolution, including 1M detection,
105 // so users can cap the effective context window for local decisions (auto-compact, etc.)
106 // while still using a 1M-capable endpoint.
107 if (
108 process.env.USER_TYPE === 'ant' &&
109 process.env.CLAUDE_CODE_MAX_CONTEXT_TOKENS
110 ) {
111 const override = parseInt(process.env.CLAUDE_CODE_MAX_CONTEXT_TOKENS, 10)
112 if (!isNaN(override) && override > 0) {
113 return override
114 }
115 }
116
117 const explicitContextSuffix = parseModelContextSuffix(model)
118 if (explicitContextSuffix) {
119 return explicitContextSuffix.contextTokens
120 }
121
122 const cap = getModelCapability(model)
123 if (cap?.max_input_tokens && cap.max_input_tokens >= 100_000) {
124 if (
125 cap.max_input_tokens > MODEL_CONTEXT_WINDOW_DEFAULT &&
126 is1mContextDisabled()
127 ) {
128 return MODEL_CONTEXT_WINDOW_DEFAULT
129 }
130 return cap.max_input_tokens
131 }
132
133 if (betas?.includes(CONTEXT_1M_BETA_HEADER) && modelSupports1M(model)) {
134 return 1_000_000
135 }
136 if (getSonnet1mExpTreatmentEnabled(model)) {
137 return 1_000_000
138 }
139 if (process.env.USER_TYPE === 'ant') {
140 const antModel = resolveAntModel(model)
141 if (antModel?.contextWindow) {
142 return antModel.contextWindow
143 }
144 }
145 return MODEL_CONTEXT_WINDOW_DEFAULT
146}
147
148export function getSonnet1mExpTreatmentEnabled(model: string): boolean {
149 if (is1mContextDisabled()) {

Callers 10

getStoredSessionCostsFunction · 0.85
addToTotalModelUsageFunction · 0.85
logSessionTelemetryFunction · 0.85
getContextUsedPercentFunction · 0.85
analyzeContextUsageFunction · 0.85

Calls 6

parseModelContextSuffixFunction · 0.85
getModelCapabilityFunction · 0.85
is1mContextDisabledFunction · 0.85
modelSupports1MFunction · 0.85
resolveAntModelFunction · 0.85

Tested by

no test coverage detected