feat(agent): implement tool-controlled display protocol (Steps 2-3)

This commit is contained in:
Michael Bleigh
2026-04-10 10:51:21 -07:00
parent 31069329bb
commit 7f7e69e6c6
13 changed files with 229 additions and 73 deletions
+7 -4
View File
@@ -197,6 +197,7 @@ export const useAgentStream = ({
name: displayName,
originalRequestName: event.name,
description: desc,
display: event.display,
status: CoreToolCallStatus.Scheduled,
isClientInitiated: false,
renderOutputAsMarkdown: isOutputMarkdown,
@@ -223,8 +224,8 @@ export const useAgentStream = ({
status = CoreToolCallStatus.Success;
const liveOutput =
event.displayContent?.[0]?.type === 'text'
? event.displayContent[0].text
event.display?.result?.type === 'text'
? event.display.result.text
: tc.resultDisplay;
const progressMessage =
legacyState?.progressMessage ?? tc.progressMessage;
@@ -237,6 +238,7 @@ export const useAgentStream = ({
return {
...tc,
status,
display: event.display ?? tc.display,
resultDisplay: liveOutput,
progressMessage,
progress,
@@ -256,8 +258,8 @@ export const useAgentStream = ({
const legacyState = event._meta?.legacyState;
const outputFile = legacyState?.outputFile;
const resultDisplay =
event.displayContent?.[0]?.type === 'text'
? event.displayContent[0].text
event.display?.result?.type === 'text'
? event.display.result.text
: tc.resultDisplay;
return {
@@ -265,6 +267,7 @@ export const useAgentStream = ({
status: event.isError
? CoreToolCallStatus.Error
: CoreToolCallStatus.Success,
display: event.display ?? tc.display,
resultDisplay,
outputFile,
};