diff --git a/packages/core/src/core/modalityDefaults.test.ts b/packages/core/src/core/modalityDefaults.test.ts index b225af2ad49..d84d45f44c5 100644 --- a/packages/core/src/core/modalityDefaults.test.ts +++ b/packages/core/src/core/modalityDefaults.test.ts @@ -151,6 +151,17 @@ describe('defaultModalities', () => { expect(defaultModalities('qwen3.7-max')).toEqual({}); }); + it('returns image for qwen3.8-max', () => { + const m = defaultModalities('qwen3.8-max'); + expect(m.image).toBe(true); + expect(m.video).toBeUndefined(); + }); + + it('returns image for qwen3.8-max-preview (provider-prefixed)', () => { + const m = defaultModalities('bailian-token-plan/qwen3.8-max-preview'); + expect(m.image).toBe(true); + }); + it('returns image + video for qwen3.6-35b variants', () => { const m = defaultModalities('qwen3.6-35b-a3b-nvfp4'); expect(m.image).toBe(true); @@ -205,6 +216,14 @@ describe('defaultModalities', () => { }); describe('Kimi', () => { + it('returns image + video for kimi-k3', () => { + const m = defaultModalities('kimi-k3'); + expect(m.image).toBe(true); + expect(m.video).toBe(true); + expect(m.pdf).toBeUndefined(); + expect(m.audio).toBeUndefined(); + }); + it('returns image + video for kimi-k2.5', () => { const m = defaultModalities('kimi-k2.5'); expect(m.image).toBe(true); diff --git a/packages/core/src/core/modalityDefaults.ts b/packages/core/src/core/modalityDefaults.ts index dfa21988c31..e043dd757c1 100644 --- a/packages/core/src/core/modalityDefaults.ts +++ b/packages/core/src/core/modalityDefaults.ts @@ -40,10 +40,12 @@ const MODALITY_PATTERNS: Array<[RegExp, InputModalities]> = [ // ------------------- // Alibaba / Qwen // ------------------- - // Qwen Plus models: image + video support (Max models are text-only) + // Qwen Plus models: image + video support [/^qwen3\.5-plus/, { image: true, video: true }], [/^qwen3\.6-plus/, { image: true, video: true }], [/^qwen3\.7-plus/, { image: true, video: true }], + // Qwen Max models (3.8+): image support + [/^qwen3\.8-max/, { image: true }], [/^coder-model$/, { image: true, video: true }], // Qwen VL (vision-language) models: image + video @@ -77,6 +79,7 @@ const MODALITY_PATTERNS: Array<[RegExp, InputModalities]> = [ // ------------------- // Moonshot / Kimi // ------------------- + [/^kimi-k3/, { image: true, video: true }], [/^kimi-k2\./, { image: true, video: true }], [/^kimi-/, {}],