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))))))