Function: eca-chat-cycle-agent

eca-chat-cycle-agent is an interactive and natively compiled function defined in eca-chat.el.

Signature

(eca-chat-cycle-agent)

Documentation

Cycle between chat agents in the active chat.

Key Bindings

eca-chat-mode-map C-c C-b

Source Code

;; Defined in /nix/store/jklqzw6pzz6j4jrbv8wy0iwgi7jlrbld-emacs-packages-deps/share/emacs/site-lisp/elpa/eca-20260928.1827/eca-chat.el
;;;###autoload
(defun eca-chat-cycle-agent ()
  "Cycle between chat agents in the active chat."
  (interactive)
  (let ((session (eca-session)))
    (eca-assert-session-running session)
    (let ((target (eca-chat--get-active-buffer session))
          (all-agents (append (eca--session-chat-agents session) nil)))
      (unless all-agents
        (user-error "No chat agents are available"))
      (unless (buffer-live-p target)
        (user-error "No active chat"))
      (let* ((current-agent
              (with-current-buffer target
                (eca-chat--agent)))
             (current-agent-index
              (seq-position all-agents current-agent))
             (next-agent
              (if current-agent-index
                  (or (nth (1+ current-agent-index) all-agents)
                      (car all-agents))
                (car all-agents))))
        (eca-chat--set-agent session next-agent target)))))