diff --git a/packages/core/src/core/tokenLimits.test.ts b/packages/core/src/core/tokenLimits.test.ts index 150eb575..e5f79368 100644 --- a/packages/core/src/core/tokenLimits.test.ts +++ b/packages/core/src/core/tokenLimits.test.ts @@ -278,6 +278,11 @@ describe('tokenLimit with output type', () => { expect(tokenLimit('qwen-vl-max-latest', 'output')).toBe(8192); // 8K output }); + it('should return different limits for input vs output for qwen3-vl-plus', () => { + expect(tokenLimit('qwen3-vl-plus', 'input')).toBe(262144); // 256K input + expect(tokenLimit('qwen3-vl-plus', 'output')).toBe(32768); // 32K output + }); + it('should return same default limits for unknown models', () => { expect(tokenLimit('unknown-model', 'input')).toBe(DEFAULT_TOKEN_LIMIT); // 128K input expect(tokenLimit('unknown-model', 'output')).toBe( diff --git a/packages/core/src/core/tokenLimits.ts b/packages/core/src/core/tokenLimits.ts index 6a3e7e86..f8ed1018 100644 --- a/packages/core/src/core/tokenLimits.ts +++ b/packages/core/src/core/tokenLimits.ts @@ -135,6 +135,7 @@ const PATTERNS: Array<[RegExp, TokenCount]> = [ [/^qwen-turbo.*$/, LIMITS['128k']], // Qwen Vision Models + [/^qwen3-vl-plus$/, LIMITS['256k']], // Qwen3-VL-Plus: 256K input [/^qwen-vl-max.*$/, LIMITS['128k']], // Generic vision-model: same as qwen-vl-max (128K token context) @@ -187,8 +188,8 @@ const OUTPUT_PATTERNS: Array<[RegExp, TokenCount]> = [ // Generic vision-model: same as qwen-vl-max-latest (8K max output tokens) [/^vision-model$/, LIMITS['8k']], - // Qwen3-VL-Plus: 8,192 max output tokens - [/^qwen3-vl-plus$/, LIMITS['8k']], + // Qwen3-VL-Plus: 32K max output tokens + [/^qwen3-vl-plus$/, LIMITS['32k']], ]; /**