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

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

Constant Summary collapse

IGNORED_FIELDS =
[
  :caller,
  :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:) ⇒ ToolUseMessage

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



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

def initialize(type:, hash:)
  @name = hash.delete(:name)&.downcase&.to_sym || :unknown
  @id = hash.delete(:id)
  @input = hash.delete(:input) || {}
  hash.except!(*IGNORED_FIELDS)
  super(type:, hash:)
end

Instance Attribute Details

#idObject (readonly)

: String?



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

def id
  @id
end

#inputObject (readonly)

: Hash[Symbol, untyped]



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

def input
  @input
end

#nameObject (readonly)

: Symbol



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

def name
  @name
end

Instance Method Details

#format(context) ⇒ Object

: (ClaudeInvocation::Context) -> String?



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

def format(context)
  tool_use = ToolUse.new(name:, input:)
  tool_use.format
end