@@ -31,6 +31,7 @@ import * as protocol from './types/protocol';
3131import { AgentInputItem , UnknownContext } from './types' ;
3232import type { InputGuardrailResult , OutputGuardrailResult } from './guardrail' ;
3333import { safeExecute } from './utils/safeExecute' ;
34+ import { HostedMCPTool } from './tool' ;
3435
3536/**
3637 * The schema version of the serialized run state. This is used to ensure that the serialized
@@ -152,12 +153,28 @@ const serializedProcessedResponseSchema = z.object({
152153 computer : z . any ( ) ,
153154 } ) ,
154155 ) ,
155- mcpApprovalRequests : z . array (
156- z . object ( {
157- requestItem : z . any ( ) ,
158- mcpTool : z . any ( ) ,
159- } ) ,
160- ) ,
156+ mcpApprovalRequests : z
157+ . array (
158+ z . object ( {
159+ requestItem : z . object ( {
160+ // protocol.HostedToolCallItem
161+ rawItem : z . object ( {
162+ type : z . literal ( 'hosted_tool_call' ) ,
163+ name : z . string ( ) ,
164+ arguments : z . string ( ) . optional ( ) ,
165+ status : z . string ( ) . optional ( ) ,
166+ output : z . string ( ) . optional ( ) ,
167+ } ) ,
168+ } ) ,
169+ // HostedMCPTool
170+ mcpTool : z . object ( {
171+ type : z . literal ( 'hosted_tool' ) ,
172+ name : z . literal ( 'hosted_mcp' ) ,
173+ providerData : z . record ( z . string ( ) , z . any ( ) ) ,
174+ } ) ,
175+ } ) ,
176+ )
177+ . optional ( ) ,
161178} ) ;
162179
163180const guardrailFunctionOutputSchema = z . object ( {
@@ -740,15 +757,16 @@ async function deserializeProcessedResponse<TContext = UnknownContext>(
740757 } ;
741758 } ,
742759 ) ,
743- mcpApprovalRequests : serializedProcessedResponse . mcpApprovalRequests . map (
744- ( approvalRequest ) => ( {
745- requestItem : new RunToolApprovalItem (
746- approvalRequest . requestItem . rawItem ,
747- currentAgent ,
748- ) ,
749- mcpTool : approvalRequest . mcpTool ,
750- } ) ,
751- ) ,
760+ mcpApprovalRequests : (
761+ serializedProcessedResponse . mcpApprovalRequests ?? [ ]
762+ ) . map ( ( approvalRequest ) => ( {
763+ requestItem : new RunToolApprovalItem (
764+ approvalRequest . requestItem
765+ . rawItem as unknown as protocol . HostedToolCallItem ,
766+ currentAgent ,
767+ ) ,
768+ mcpTool : approvalRequest . mcpTool as unknown as HostedMCPTool ,
769+ } ) ) ,
752770 } ;
753771
754772 return {
@@ -757,6 +775,7 @@ async function deserializeProcessedResponse<TContext = UnknownContext>(
757775 return (
758776 result . handoffs . length > 0 ||
759777 result . functions . length > 0 ||
778+ result . mcpApprovalRequests . length > 0 ||
760779 result . computerActions . length > 0
761780 ) ;
762781 } ,
0 commit comments