Function: eca-chat--show-task-tool-call-approval

eca-chat--show-task-tool-call-approval is a natively compiled function defined in eca-chat.el.

Signature

(eca-chat--show-task-tool-call-approval SESSION CONTENT CHAT-ID SPACING-LINE-PREFIX)

Documentation

Ask in the task widget to approve the task tool call CONTENT.

The task tool is rendered as the task area widget instead of a regular tool call block, so its approval prompt has to be shown there too, otherwise a chat with the task tool configured as ask hangs on
"Waiting for tool call approval" with nothing to accept or reject
(editor-code-assistant/eca#584). SESSION, CHAT-ID and
SPACING-LINE-PREFIX build the approval prompt for the tool call id.

Source Code

;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-chat.el
(defun eca-chat--show-task-tool-call-approval (session content chat-id spacing-line-prefix)
  "Ask in the task widget to approve the task tool call CONTENT.
The task tool is rendered as the task area widget instead of a regular
tool call block, so its approval prompt has to be shown there too,
otherwise a chat with the task tool configured as `ask' hangs on
\"Waiting for tool call approval\" with nothing to accept or reject
\(editor-code-assistant/eca#584).  SESSION, CHAT-ID and
SPACING-LINE-PREFIX build the approval prompt for the tool call id."
  (-let* (((&plist :id id :name name :server server :arguments args :summary summary) content)
          (label (concat (propertize (or summary (format "Calling tool: %s__%s" server name))
                                     'font-lock-face 'eca-chat-mcp-tool-call-label-face)
                         " " eca-chat-mcp-tool-call-pending-approval-symbol
                         (eca-chat--build-tool-call-approval-str-content
                          session id spacing-line-prefix chat-id))))
    (eca-chat--set-task-widget label
                               (eca-chat--content-table `(("Tool" . ,name)
                                                          ("Server" . ,server)
                                                          ("Arguments" . ,args)))
                               id)
    (when eca-chat-expand-pending-approval-tools
      (eca-chat--expandable-content-toggle eca-chat--task-block-id t nil)
      (eca-chat--ensure-prompt-visible))))