diff --git a/lib/active_agent/concerns/streaming.rb b/lib/active_agent/concerns/streaming.rb index a605e093..194060f0 100644 --- a/lib/active_agent/concerns/streaming.rb +++ b/lib/active_agent/concerns/streaming.rb @@ -268,7 +268,8 @@ def _stream_define_callback_wrapper_proc(callback_name, method_proc) # @return [Proc] callback proc that accepts (message, delta, type) def stream_broadcaster proc do |message, delta, type| - self.stream_chunk = StreamChunk.new(message, delta) + cast_message = message.is_a?(Hash) ? Providers::Common::Messages::Types::MessageType.new.cast(message) : message + self.stream_chunk = StreamChunk.new(cast_message, delta) run_callbacks(:stream_open) if type == :open run_callbacks(:stream)