Commit 8c6f4a9
lib/elelem/state.rb
@@ -34,15 +34,21 @@ module Elelem
class Waiting < State
def process(message)
- state = if message["thinking"] && !message["thinking"].empty?
- Thinking.new(agent)
- elsif message["tool_calls"]&.any?
- Executing.new(agent)
- elsif message["content"] && !message["content"].empty?
- Talking.new(agent)
- end
-
- state&.process(message)
+ state_for(message)&.process(message)
+ end
+
+ private
+
+ def state_for(message)
+ if message["thinking"] && !message["thinking"].empty?
+ Thinking.new(agent)
+ elsif message["tool_calls"]&.any?
+ Executing.new(agent)
+ elsif message["content"] && !message["content"].empty?
+ Talking.new(agent)
+ else
+ agent.logger.error("Unknown message type: #{message}")
+ end
end
end
lib/elelem/tool.rb
@@ -31,7 +31,7 @@ module Elelem
def initialize(tui)
@tui = tui
- super("bash", "Execute a shell command.", {
+ super("bash(command)", "Execute a shell command.", {
parameters: {
type: "object",
properties: {