From 6ec0fe1f7101e1ae9662de65e6f3ead624bcd660 Mon Sep 17 00:00:00 2001 From: mateo Date: Sat, 31 Oct 2026 22:42:50 +0000 Subject: [PATCH] fix(responses): type the first turn's completion request so the basedpyright gate holds Co-Authored-By: Devin AI <158243242+devin-ai-integration[bot]@users.noreply.github.com> --- .../litellm_completion_transformation/handler.py | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/litellm/responses/litellm_completion_transformation/handler.py b/litellm/responses/litellm_completion_transformation/handler.py index 90c8ccff50b..52333fef4bd 100644 --- a/litellm/responses/litellm_completion_transformation/handler.py +++ b/litellm/responses/litellm_completion_transformation/handler.py @@ -227,7 +227,7 @@ class LiteLLMCompletionTransformationHandler: ) -> ResponsesAPIResponse | BaseResponsesAPIStreamingIterator: previous_response_id: Final[str | None] = responses_api_request.get("previous_response_id") request_kwargs: Final = _REQUEST_KWARGS_ADAPTER.validate_python(kwargs) - completion_request: Final = ( + completion_request: Final[Mapping[str, object]] = ( await LiteLLMCompletionResponsesConfig.async_responses_api_session_handler( previous_response_id=previous_response_id, litellm_completion_request=litellm_completion_request, @@ -238,7 +238,10 @@ class LiteLLMCompletionTransformationHandler: input_replaces_history=holds_compaction_summary(with_compaction_items_as_params(request_input)), ) if previous_response_id - else {**litellm_completion_request, **previous_response_ids_metadata((), request_kwargs)} + else { + **_REQUEST_KWARGS_ADAPTER.validate_python(litellm_completion_request), + **previous_response_ids_metadata((), request_kwargs), + } ) litellm_completion_response: Final[ModelResponse | litellm.CustomStreamWrapper] = await litellm.acompletion( @@ -257,11 +260,11 @@ class LiteLLMCompletionTransformationHandler: elif isinstance(litellm_completion_response, litellm.CustomStreamWrapper): return LiteLLMCompletionStreamingIterator( - model=completion_request.get("model") or "", + model=litellm_completion_request.get("model") or "", litellm_custom_stream_wrapper=litellm_completion_response, request_input=request_input, responses_api_request=responses_api_request, - custom_llm_provider=completion_request.get("custom_llm_provider"), + custom_llm_provider=litellm_completion_request.get("custom_llm_provider"), litellm_metadata=kwargs.get("litellm_metadata", {}), tool_call_provider_fields=not embeds_thought_signature_in_tool_call_id( _REQUEST_KWARGS_ADAPTER.validate_python(kwargs)