diff --git a/core/schemas/responses.go b/core/schemas/responses.go index 50b4c1cdd7..b572890cc4 100644 --- a/core/schemas/responses.go +++ b/core/schemas/responses.go @@ -1,6 +1,7 @@ package schemas import ( + "encoding/json" "fmt" "reflect" "strings" @@ -928,6 +929,11 @@ type ResponsesMessage struct { Role *ResponsesMessageRoleType `json:"role,omitempty"` Content *ResponsesMessageContent `json:"content,omitempty"` + // Author and Recipient are required on multi-agent collab_tool_call items. + // Preserved as raw JSON to survive bifrost round-trip without schema coupling. + Author json.RawMessage `json:"author,omitempty"` + Recipient json.RawMessage `json:"recipient,omitempty"` + *ResponsesToolMessage // For Tool calls and outputs CacheControl *CacheControl `json:"cache_control,omitempty"` // Carries cache_control for function_call and function_call_output message types @@ -1018,6 +1024,9 @@ type ResponsesMessageContentBlock struct { FileID *string `json:"file_id,omitempty"` // Reference to uploaded file Text *string `json:"text,omitempty"` Signature *string `json:"signature,omitempty"` // Signature of the content (for reasoning) + // EncryptedContent is required on reasoning content blocks during history replay. + // OpenAI returns it alongside summary_text blocks; it must be echoed back verbatim. + EncryptedContent *string `json:"encrypted_content,omitempty"` *ResponsesInputMessageContentBlockImage *ResponsesInputMessageContentBlockFile