📤 fix: Show Proper Upload Options for Azure and Agent Endpoints (#11081)

* fix: only show upload to provider for azureOpenAi when use responses api is true

* fix: model_parameters not available on first load so Upload Image incorrectly shown - now we query if not populated

* test: update tests for new azureOpenAI Responses API logic

* chore: correct order of headers in OAuth request to ensure proper content type is set

* fix: add useResponsesApi prop to AttachFileMenu and DragDropModal components

---------

Co-authored-by: Danny Avila <danny@librechat.ai>
This commit is contained in:
Dustin Healy 2025-12-25 12:54:15 -08:00 committed by GitHub
parent 4fe223eedd
commit 7183223e59
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
9 changed files with 131 additions and 11 deletions

View file

@ -47,7 +47,7 @@ const DragDropModal = ({ onOptionSelect, setShowModal, files, isVisible }: DragD
* Use definition for agents endpoint for ephemeral agents
* */
const capabilities = useAgentCapabilities(agentsConfig?.capabilities ?? defaultAgentCapabilities);
const { conversationId, agentId, endpoint, endpointType } = useDragDropContext();
const { conversationId, agentId, endpoint, endpointType, useResponsesApi } = useDragDropContext();
const ephemeralAgent = useRecoilValue(ephemeralAgentByConvoId(conversationId ?? ''));
const { fileSearchAllowedByAgent, codeAllowedByAgent, provider } = useAgentToolPermissions(
agentId,
@ -66,8 +66,15 @@ const DragDropModal = ({ onOptionSelect, setShowModal, files, isVisible }: DragD
/** Helper to get inferred MIME type for a file */
const getFileType = (file: File) => inferMimeType(file.name, file.type);
const isAzureWithResponsesApi =
currentProvider === EModelEndpoint.azureOpenAI && useResponsesApi;
// Check if provider supports document upload
if (isDocumentSupportedProvider(endpointType) || isDocumentSupportedProvider(currentProvider)) {
if (
isDocumentSupportedProvider(endpointType) ||
isDocumentSupportedProvider(currentProvider) ||
isAzureWithResponsesApi
) {
const supportsImageDocVideoAudio =
currentProvider === EModelEndpoint.google || currentProvider === Providers.OPENROUTER;
const validFileTypes = supportsImageDocVideoAudio
@ -130,6 +137,7 @@ const DragDropModal = ({ onOptionSelect, setShowModal, files, isVisible }: DragD
endpoint,
endpointType,
capabilities,
useResponsesApi,
codeAllowedByAgent,
fileSearchAllowedByAgent,
]);