fix: route onInputAvailable to the repaired tool in streaming calls - #21104
Open
ai-sdk-factory[bot] wants to merge 3 commits into
Open
ai-sdk-factory[bot] wants to merge 3 commits into
ai-sdk-factory[bot] wants to merge 3 commits into
Conversation
Co-authored-by: brennanbutler01 <64561607+brennanbutler01@users.noreply.github.com>
1 task
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Background
Streaming APIs routed repaired tool input to the original tool's onInputAvailable callback, or skipped the callback when the original tool was unknown.
Root Cause
invokeToolCallbacksFromStream selected onInputAvailable using the tool name cached from tool-input-start instead of the parsed tool-call's repaired name; the reproduction confirmed execution used the repaired tool while callback routing did not.
Summary
Completed streamed tool calls now resolve onInputAvailable using the final parsed tool name. Added a patch changeset and removed reproduction-only artifacts.
Testing
Added regression coverage verifying start and delta callbacks remain associated with the streaming name while onInputAvailable uses the completed repaired tool name.
End-to-end Validation
pnpm -C packages/ai buildfollowed by the immutable original reproduction command — all generateText, streamText, and ToolLoopAgent.stream routing and control scenarios passed without the bug signal.Related Issues
Fixes #21100
Closes #21101