fix: handle OpenRouter reasoning details for Gemini models #2649
+713
−5
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Description
This PR fixes an issue where Gemini models via OpenRouter would fail with a 400 error when using tools. The error was caused by missing
reasoning_details(thought signatures) in subsequent requests, which OpenRouter/Google AI Studio requires to be preserved and replayed.Error fixed:
Gemini models require OpenRouter reasoning details to be preserved in each request. ... Function call is missing a thought_signature in functionCall parts.Changes:
OpenRouterEndpointto capturereasoning_detailsfrom streaming responses.reasoningCacheinOpenRouterLMProviderto associate reasoning blocks with tool call IDs.reasoning_detailsback into outgoing request messages for assistant turns containing tool calls.src/extension/byok/vscode-node/test/openRouterProvider.spec.ts.Testing
Checklist
Fixes: Copilot Request id: 8aa4dd19-4578-4e8c-abe8-986364545cd9