Class: Roast::Cogs::Agent::Providers::Claude

Inherits:
Roast::Cogs::Agent::Provider show all
Defined in:
lib/roast/cogs/agent/providers/claude.rb,
lib/roast/cogs/agent/providers/claude/message.rb,
lib/roast/cogs/agent/providers/claude/tool_use.rb,
lib/roast/cogs/agent/providers/claude/tool_result.rb,
lib/roast/cogs/agent/providers/claude/claude_invocation.rb,
lib/roast/cogs/agent/providers/claude/messages/text_message.rb,
lib/roast/cogs/agent/providers/claude/messages/user_message.rb,
lib/roast/cogs/agent/providers/claude/messages/result_message.rb,
lib/roast/cogs/agent/providers/claude/messages/system_message.rb,
lib/roast/cogs/agent/providers/claude/messages/unknown_message.rb,
lib/roast/cogs/agent/providers/claude/messages/thinking_message.rb,
lib/roast/cogs/agent/providers/claude/messages/tool_use_message.rb,
lib/roast/cogs/agent/providers/claude/messages/assistant_message.rb,
lib/roast/cogs/agent/providers/claude/messages/tool_result_message.rb

Defined Under Namespace

Modules: Messages Classes: ClaudeInvocation, Message, Output, ToolResult, ToolUse

Instance Method Summary collapse

Methods inherited from Roast::Cogs::Agent::Provider

#initialize

Constructor Details

This class inherits a constructor from Roast::Cogs::Agent::Provider

Instance Method Details

#invoke(input) ⇒ Object

: (Agent::Input) -> Agent::Output



20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
# File 'lib/roast/cogs/agent/providers/claude.rb', line 20

def invoke(input)
  invocations = [] #: Array[ClaudeInvocation]
  input.prompts.each do |prompt|
    previous_session = invocations.last&.result&.session
    invocation = ClaudeInvocation.new(
      @config,
      prompt,
      previous_session || input.session,
      fork_session: previous_session.nil?,
    )
    invocation.run!
    invocations << invocation
    break unless invocation.result.success
  end
  final_result = invocations.last.not_nil!.result
  final_result.stats = invocations.filter_map { |i| i.result.stats }.reduce(:+) if invocations.size > 1
  Output.new(final_result)
end