export class TokenLimits { maxTokens: number requestTokens: number responseTokens: number knowledgeCutOff: string constructor(model = 'llama-3.1-8b-instant') { this.knowledgeCutOff = '2023-12-01' // Default for modern large context models this.maxTokens = 128000 this.responseTokens = 16000 if (model.includes('kimi-k2')) { this.maxTokens = 256000 this.responseTokens = 16000 } else if (model.includes('qwen') || model.includes('llama-4')) { this.maxTokens = 128000 this.responseTokens = 16000 } else if (model.includes('gpt-oss-120b')) { this.maxTokens = 128000 this.responseTokens = 16000 } else if (model.includes('3.2-11b')) { this.maxTokens = 128000 this.responseTokens = 16000 } else if ( model.includes('llama3') || model.includes('llama-3') || model.includes('groq') || model.includes('mixtral') ) { this.maxTokens = 128000 this.responseTokens = 16000 } else { this.maxTokens = 128000 this.responseTokens = 4000 } // Provide some margin this.requestTokens = this.maxTokens - this.responseTokens - 500 } string(): string { return `max_tokens=${this.maxTokens}, request_tokens=${this.requestTokens}, response_tokens=${this.responseTokens}` } }