fix(workflow): expose totalUsage and finishReason on stream result#14786
Draft
VaguelySerious wants to merge 1 commit intoworkflow-agent-unify-callbacksfrom
Draft
fix(workflow): expose totalUsage and finishReason on stream result#14786VaguelySerious wants to merge 1 commit intoworkflow-agent-unify-callbacksfrom
VaguelySerious wants to merge 1 commit intoworkflow-agent-unify-callbacksfrom
Conversation
WorkflowAgentStreamResult omitted totalUsage and finishReason, which were already computed and passed to the onFinish callback. This made them unreachable for callers awaiting stream() directly, and diverged from GenerateTextResult/StreamTextResult. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
3 tasks
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.
Summary
WorkflowAgentStreamResult(the awaited return ofagent.stream()) is missingtotalUsageandfinishReason. Both fields are already computed in the runtime and passed to theonFinishcallback, so the omission from the result is asymmetric and diverges fromGenerateTextResult/StreamTextResult, which expose them directly.This adds them to the interface and to all three return sites (early-abort, paused-tools, and the final return), reusing the existing
aggregateUsage(steps)helper.Targets the
workflow-agent-unify-callbacksbranch since theWorkflowAgentwork is gated behind it.See also vercel/workflow#1863
Test plan
workflow-agent-compat.test.tsassertsresult.totalUsageandresult.finishReasonafter a normal streampnpm turbo run build --filter=@ai-sdk/workflowpasses🤖 Generated with Claude Code