Commit 8c6f4a9

mo khan <mo@mokhan.ca>
2025-08-14 16:07:52
refactor: extract method to fetch next state
1 parent a8432d4
Changed files (2)
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: {