Commit 580bd42

mo khan <mo@mokhan.ca>
2025-08-10 07:22:41
refactor inline method
1 parent bb00e25
Changed files (1)
lib
elelem
lib/elelem/agent.rb
@@ -16,38 +16,32 @@ module Elelem
         input = $stdin.gets&.chomp
         break if input.nil? || input.empty? || input == "exit"
 
-        process(input)
-      end
-    end
-
-    private
-
-    def process(text)
-      conversation.add(role: "user", content: text)
-
-      done = false
-      loop do
-        configuration.api.chat(conversation.history, tools) do |chunk|
-          response = JSON.parse(chunk)
-          done = response["done"]
-          message = response["message"] || {}
-
-          if message["thinking"]
-            print message["thinking"]
-          elsif message["tool_calls"]&.any?
-            message["tool_calls"].each do |t|
-              conversation.add(role: "tool", content: tools.execute(t))
+        conversation.add(role: "user", content: input)
+
+        done = false
+        loop do
+          configuration.api.chat(conversation.history, tools) do |chunk|
+            response = JSON.parse(chunk)
+            done = response["done"]
+            message = response["message"] || {}
+
+            if message["thinking"]
+              print message["thinking"]
+            elsif message["tool_calls"]&.any?
+              message["tool_calls"].each do |t|
+                conversation.add(role: "tool", content: tools.execute(t))
+              end
+              done = false
+            elsif message["content"].to_s.strip
+              print message["content"]
+            else
+              raise chunk.inspect
             end
-            done = false
-          elsif message["content"].to_s.strip
-            print message["content"]
-          else
-            raise chunk.inspect
+            $stdout.flush
           end
-          $stdout.flush
-        end
 
-        break if done
+          break if done
+        end
       end
     end
   end