class Elelem::Agent
def cleanup
def cleanup logger.debug("Cleaning up agent...") configuration.cleanup end
def execute(tool_call)
def execute(tool_call) logger.debug("Execute: #{tool_call}") configuration.tools.execute(tool_call) end
def initialize(configuration)
def initialize(configuration) @api = configuration.api @tui = configuration.tui @configuration = configuration @model = configuration.model @conversation = configuration.conversation @logger = configuration.logger at_exit { cleanup } transition_to(States::Idle.new) end
def quit
def quit logger.debug("Exiting...") cleanup exit end
def repl
def repl loop do current_state.run(self) end end
def transition_to(next_state)
def transition_to(next_state) logger.debug("Transition to: #{next_state.class.name}") @current_state = next_state end