Class: Roast::Cogs::Agent::Providers::Claude::Messages::UserMessage

Inherits:
Roast::Cogs::Agent::Providers::Claude::Message show all
Defined in:
lib/roast/cogs/agent/providers/claude/messages/user_message.rb

Constant Summary collapse

IGNORED_FIELDS =
[
  :isSynthetic,
  :parent_tool_use_id,
  :tool_use_result,
].freeze

Instance Attribute Summary collapse

Attributes inherited from Roast::Cogs::Agent::Providers::Claude::Message

#error, #session_id, #type, #unparsed

Instance Method Summary collapse

Methods inherited from Roast::Cogs::Agent::Providers::Claude::Message

#format, from_hash, from_json

Constructor Details

#initialize(type:, hash:) ⇒ UserMessage

: (type: Symbol, hash: Hash[Symbol, untyped]) -> void



21
22
23
24
25
26
27
28
29
# File 'lib/roast/cogs/agent/providers/claude/messages/user_message.rb', line 21

def initialize(type:, hash:)
  @messages = hash.dig(:message, :content)&.map do |content|
    content[:role] = :user
    Message.from_hash(content)
  end&.compact || []
  hash.delete(:message)
  hash.except!(*IGNORED_FIELDS)
  super(type:, hash:)
end

Instance Attribute Details

#messagesObject (readonly)

: Array



18
19
20
# File 'lib/roast/cogs/agent/providers/claude/messages/user_message.rb', line 18

def messages
  @messages
end