Function: claude-code-ide-mcp-complete-deferred

claude-code-ide-mcp-complete-deferred is a natively compiled function defined in claude-code-ide-mcp.el.

Signature

(claude-code-ide-mcp-complete-deferred SESSION TOOL-NAME RESULT &optional UNIQUE-KEY)

Documentation

Complete a deferred response for SESSION and TOOL-NAME with RESULT.

SESSION is the MCP session that owns the deferred response. If UNIQUE-KEY is provided, it's used to disambiguate multiple deferred responses.

Source Code

;; Defined in /nix/store/yjvbhwl7p6zrbw9xlnni7y4hra8sa3pl-emacs-packages-deps/share/emacs/site-lisp/claude-code-ide-mcp.el
(defun claude-code-ide-mcp-complete-deferred (session tool-name result &optional unique-key)
  "Complete a deferred response for SESSION and TOOL-NAME with RESULT.
SESSION is the MCP session that owns the deferred response.
If UNIQUE-KEY is provided, it's used to disambiguate multiple deferred
responses."
  (let* ((lookup-key (if unique-key
                         (format "%s-%s" tool-name unique-key)
                       tool-name)))
    (claude-code-ide-debug "Complete deferred for %s" lookup-key)
    (if (not session)
        (claude-code-ide-debug "No session provided for completing deferred response %s" lookup-key)
      ;; Use the provided session directly
      (let* ((session-deferred (claude-code-ide-mcp-session-deferred session))
             (id (gethash lookup-key session-deferred)))
        (if id
            (let ((client (claude-code-ide-mcp-session-client session)))
              (claude-code-ide-debug "Found deferred response id %s in session for %s"
                                     id (claude-code-ide-mcp-session-project-dir session))
              (remhash lookup-key session-deferred)
              (if client
                  (let* ((response (claude-code-ide-mcp--make-response id `((content . ,result))))
                         (json-response (json-encode response)))
                    (claude-code-ide-debug "Sending deferred response: %s" json-response)
                    (websocket-send-text client json-response)
                    (claude-code-ide-debug "Deferred response sent"))
                (claude-code-ide-debug "No client connected for session, cannot send deferred response")))
          (claude-code-ide-debug "No deferred response found for %s" lookup-key))))))