Class: Roast::Cogs::Agent::Providers::Claude
- Inherits:
-
Roast::Cogs::Agent::Provider
- Object
- Roast::Cogs::Agent::Provider
- Roast::Cogs::Agent::Providers::Claude
- 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
-
#invoke(input) ⇒ Object
: (Agent::Input) -> Agent::Output.
Methods inherited from Roast::Cogs::Agent::Provider
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 |