branch: externals/ellama
commit 1298408a9edf76bcc3272a1c024153556efdfd09
Author: Sergey Kostyaev <[email protected]>
Commit: Sergey Kostyaev <[email protected]>

    Fix compilation warnings
---
 ellama-tools.el | 63 ++++++++++++++++++++++++++++++++++++++-------------------
 1 file changed, 42 insertions(+), 21 deletions(-)

diff --git a/ellama-tools.el b/ellama-tools.el
index d88d6fa0df..0c049e0f42 100644
--- a/ellama-tools.el
+++ b/ellama-tools.el
@@ -33,6 +33,29 @@
 (require 'json)
 (require 'llm)
 
+(declare-function llm-standard-provider-p "llm-provider-utils" (provider))
+(declare-function ellama-new-session "ellama"
+                  (provider prompt &optional ephemeral))
+(declare-function ellama-session-extra "ellama" (session))
+(declare-function ellama-session-id "ellama" (session))
+(declare-function ellama-stream "ellama" (prompt &rest args))
+
+(defvar ellama-provider)
+(defvar ellama-coding-provider)
+(defvar ellama--current-session)
+(defvar ellama--current-session-id)
+
+(defvar ellama-tools-available nil
+  "Alist containing all registered tools.")
+
+(defvar ellama-tools-enabled nil
+  "List of tools that have been enabled.")
+
+(defun ellama-tools--set-session-extra (session extra)
+  "Set SESSION EXTRA."
+  (with-no-warnings
+    (setf (ellama-session-extra session) extra)))
+
 (defcustom ellama-tools-allow-all nil
   "Allow `ellama' using all the tools without user confirmation.
 Dangerous.  Use at your own risk."
@@ -112,12 +135,6 @@ Tools from this list will work without user confirmation."
         (setq provider (eval provider)))
       provider)))
 
-(defvar ellama-tools-available nil
-  "Alist containing all registered tools.")
-
-(defvar ellama-tools-enabled nil
-  "List of tools that have been enabled.")
-
 (defvar-local ellama-tools-confirm-allowed (make-hash-table)
   "Contains hash table of allowed functions.
 Key is a function name symbol.  Value is a boolean t.")
@@ -828,8 +845,9 @@ CALLBACK will be used to report result asyncronously."
       (let* ((extra (ellama-session-extra ,session))
              (done (plist-get extra :task-completed)))
         (unless done
-          (setf (ellama-session-extra ,session)
-                (plist-put extra :task-completed t))
+          (ellama-tools--set-session-extra
+           ,session
+           (plist-put extra :task-completed t))
           (funcall ,callback result)))
       "Result received. Task completed.")
     :name "report_result"
@@ -849,12 +867,14 @@ CALLBACK will be used to report result asyncronously."
      (done
       (message "Subagent finished."))
      ((>= steps max)
-      (setf (ellama-session-extra session)
-            (plist-put extra :task-completed t))
+      (ellama-tools--set-session-extra
+       session
+       (plist-put extra :task-completed t))
       (funcall callback (format "Max steps (%d) reached." max)))
      (t
-      (setf (ellama-session-extra session)
-            (plist-put extra :step-count (1+ steps)))
+      (ellama-tools--set-session-extra
+       session
+       (plist-put extra :step-count (1+ steps)))
       (ellama-stream
        ellama-tools-subagent-continue-prompt
        :session session
@@ -896,15 +916,16 @@ ROLE       – role key from `ellama-tools-subagent-roles'."
     ;; Initialize session state (single source of truth)
     ;; ============================================================
 
-    (setf (ellama-session-extra worker)
-          (list
-           :parent-session parent-id
-           :role role-key
-           :tools all-tools
-           :result-callback callback
-           :task-completed nil
-           :step-count 0
-           :max-steps steps-limit))
+    (ellama-tools--set-session-extra
+     worker
+     (list
+      :parent-session parent-id
+      :role role-key
+      :tools all-tools
+      :result-callback callback
+      :task-completed nil
+      :step-count 0
+      :max-steps steps-limit))
 
     ;; ============================================================
     ;; Start the agent loop

Reply via email to