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

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

Constant Summary collapse

IGNORED_FIELDS =
[
  :role,
].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

from_hash, from_json

Constructor Details

#initialize(type:, hash:) ⇒ ToolResultMessage

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



25
26
27
28
29
30
31
# File 'lib/roast/cogs/agent/providers/claude/messages/tool_result_message.rb', line 25

def initialize(type:, hash:)
  @tool_use_id = hash.delete(:tool_use_id)
  @content = hash.delete(:content)
  @is_error = hash.delete(:is_error) || false
  hash.except!(*IGNORED_FIELDS)
  super(type:, hash:)
end

Instance Attribute Details

#contentObject (readonly)

: String?



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

def content
  @content
end

#is_errorObject (readonly)

: bool



22
23
24
# File 'lib/roast/cogs/agent/providers/claude/messages/tool_result_message.rb', line 22

def is_error
  @is_error
end

#tool_use_idObject (readonly)

: String?



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

def tool_use_id
  @tool_use_id
end

Instance Method Details

#format(context) ⇒ Object

: (ClaudeInvocation::Context) -> String?



34
35
36
37
38
# File 'lib/roast/cogs/agent/providers/claude/messages/tool_result_message.rb', line 34

def format(context)
  tool_use = context.tool_use(tool_use_id)
  tool_result = ToolResult.new(tool_use:, content:, is_error:)
  tool_result.format
end