Class: AgUi::Terminals::RubyLLM::ClientTool

Inherits:
RubyLLM::Tool
  • Object
show all
Defined in:
lib/ag_ui/terminals/ruby_llm.rb

Overview

A client tool: full schema for the provider, no server execution. When the model calls it, execution "halts" ruby_llm's auto tool loop — the assistant tool-call message is already in chat.messages and the browser owns the actual execution (doc 03 multi-run model).

Instance Method Summary collapse

Constructor Details

#initialize(name:, description:, parameters:) ⇒ ClientTool

Returns a new instance of ClientTool.



70
71
72
73
74
75
# File 'lib/ag_ui/terminals/ruby_llm.rb', line 70

def initialize(name:, description:, parameters:)
  @client_name = name
  @client_description = description
  @client_schema = parameters
  super()
end

Instance Method Details

#call(_args) ⇒ Object

Bypass arg validation entirely — the browser is the executor and the next run carries its result back in history.



83
84
85
# File 'lib/ag_ui/terminals/ruby_llm.rb', line 83

def call(_args)
  halt("(deferred to client)")
end

#descriptionObject



78
# File 'lib/ag_ui/terminals/ruby_llm.rb', line 78

def description = @client_description

#nameObject



77
# File 'lib/ag_ui/terminals/ruby_llm.rb', line 77

def name = @client_name

#params_schemaObject



79
# File 'lib/ag_ui/terminals/ruby_llm.rb', line 79

def params_schema = @client_schema