Issue Checklist
Platform
macOS
Version
v1.8.0
Bug Description
Native PDF file upload works with some builtin providers (e.g., Google/Gemini) but fails on others (e.g., cherryin) even though the underlying model supports PDF input.
Root Cause
supportsPdfInput() in modelCapabilities.ts checks against an AI SDK provider ID whitelist:
'openai', 'azure-openai', 'anthropic', 'google', 'google-generative-ai', 'google-vertex', 'bedrock', 'amazon-bedrock'
The cherryin provider has type new-api, so getAiSdkProviderId() does not resolve to any of these whitelisted IDs. As a result, supportsPdfInput() returns false for cherryin, and the PDF falls back to text extraction instead of being sent natively.
Expected Behavior
PDF files should be sent natively (as file/document parts) for any provider whose underlying model API supports PDF input, including new-api type providers like cherryin that proxy to PDF-capable APIs.
Relevant Code
src/renderer/src/aiCore/prepareParams/modelCapabilities.ts → supportsPdfInput() (whitelist check)
src/renderer/src/aiCore/provider/factory.ts → getAiSdkProviderId() (provider ID resolution)
src/renderer/src/aiCore/prepareParams/fileProcessor.ts:205 (PDF handling decision point)
Issue Checklist
Platform
macOS
Version
v1.8.0
Bug Description
Native PDF file upload works with some builtin providers (e.g., Google/Gemini) but fails on others (e.g., cherryin) even though the underlying model supports PDF input.
Root Cause
supportsPdfInput()inmodelCapabilities.tschecks against an AI SDK provider ID whitelist:The cherryin provider has type
new-api, sogetAiSdkProviderId()does not resolve to any of these whitelisted IDs. As a result,supportsPdfInput()returnsfalsefor cherryin, and the PDF falls back to text extraction instead of being sent natively.Expected Behavior
PDF files should be sent natively (as file/document parts) for any provider whose underlying model API supports PDF input, including
new-apitype providers like cherryin that proxy to PDF-capable APIs.Relevant Code
src/renderer/src/aiCore/prepareParams/modelCapabilities.ts→supportsPdfInput()(whitelist check)src/renderer/src/aiCore/provider/factory.ts→getAiSdkProviderId()(provider ID resolution)src/renderer/src/aiCore/prepareParams/fileProcessor.ts:205(PDF handling decision point)