Commit 538836f
Changed files (7)
exe
lib
elelem
states
working
exe/elelem
@@ -3,9 +3,6 @@
require "elelem"
-Reline.input = $stdin
-Reline.output = $stdout
-
Signal.trap("INT") do
exit(1)
end
lib/elelem/states/working/state.rb
@@ -13,6 +13,10 @@ module Elelem
agent.tui.show_progress("#{display_name}...", icon, colour: colour)
end
+ def run(message)
+ process(message)
+ end
+
def display_name
self.class.name.split("::").last
end
lib/elelem/states/working.rb
@@ -5,8 +5,8 @@ module Elelem
module Working
class << self
def run(agent)
- state = Waiting.new(agent)
done = false
+ state = Waiting.new(agent)
loop do
agent.api.chat(agent.conversation.history) do |chunk|
@@ -15,7 +15,7 @@ module Elelem
done = response["done"]
agent.logger.debug("#{state.display_name}: #{message}")
- state = state.process(message)
+ state = state.run(message)
end
break if state.nil?
lib/elelem/tools.rb
@@ -19,7 +19,9 @@ module Elelem
return "Invalid function name: #{name}" if tool.nil?
return "Invalid function arguments: #{args}" unless tool.valid?(args)
- tool.call(args)
+ CLI::UI::Frame.open(name) do
+ tool.call(args)
+ end
end
def to_h
lib/elelem.rb
@@ -1,5 +1,6 @@
# frozen_string_literal: true
+require "cli/ui"
require "erb"
require "json"
require "json-schema"
@@ -31,6 +32,10 @@ require_relative "elelem/tools"
require_relative "elelem/tui"
require_relative "elelem/version"
+CLI::UI::StdoutRouter.enable
+Reline.input = $stdin
+Reline.output = $stdout
+
module Elelem
class Error < StandardError; end
end
elelem.gemspec
@@ -61,6 +61,7 @@ Gem::Specification.new do |spec|
spec.executables = spec.files.grep(%r{\Aexe/}) { |f| File.basename(f) }
spec.require_paths = ["lib"]
+ spec.add_dependency "cli-ui"
spec.add_dependency "erb"
spec.add_dependency "json"
spec.add_dependency "json-schema"
Gemfile.lock
@@ -2,6 +2,7 @@ PATH
remote: .
specs:
elelem (0.1.2)
+ cli-ui
erb
json
json-schema
@@ -19,6 +20,7 @@ GEM
public_suffix (>= 2.0.2, < 7.0)
ast (2.4.3)
bigdecimal (3.2.2)
+ cli-ui (2.4.0)
date (3.4.1)
diff-lcs (1.6.2)
erb (5.0.2)