Class: Roast::Cogs::Agent::Providers::Pi
- Inherits:
-
Roast::Cogs::Agent::Provider
- Object
- Roast::Cogs::Agent::Provider
- Roast::Cogs::Agent::Providers::Pi
- Defined in:
- lib/roast/cogs/agent/providers/pi.rb,
lib/roast/cogs/agent/providers/pi/pi_invocation.rb,
lib/roast/cogs/agent/providers/pi/messages/tool_call_message.rb,
lib/roast/cogs/agent/providers/pi/messages/tool_result_message.rb
Defined Under Namespace
Modules: Messages Classes: Output, PiInvocation
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 |
# File 'lib/roast/cogs/agent/providers/pi.rb', line 20 def invoke(input) invocations = [] #: Array[PiInvocation] input.prompts.each do |prompt| previous_session = invocations.last&.result&.session invocation = PiInvocation.new( @config, prompt, previous_session || input.session, ) 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 |