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

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

Constant Summary collapse

IGNORED_FIELDS =
[
  :parent_tool_use_id,
].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:) ⇒ AssistantMessage

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



19
20
21
22
23
24
25
26
27
# File 'lib/roast/cogs/agent/providers/claude/messages/assistant_message.rb', line 19

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

Instance Attribute Details

#messagesObject (readonly)

: Array



16
17
18
# File 'lib/roast/cogs/agent/providers/claude/messages/assistant_message.rb', line 16

def messages
  @messages
end