FBKIL4DRYWGFMYOCTAYPXQPD4IQS5R3GRZVWNKI6NOAH4YAU7HDQC (defcustom madrigal-default-provider 'code"Default provider slot used by `madrigal-edit'.":type '(choice (const :tag "Code" code)(const :tag "Reason" reason)(const :tag "Quick" quick)))(define-obsolete-variable-alias 'madrigal-llm-provider'madrigal-llm-provider-code"0.2.0")
;; If this symbol was already bound from an older load (default 12) and the;; user has not customized/saved it, bump it to the new default.
;; If this symbol was already bound from an older load and the user has not;; customized/saved it, bump it to the new default.
(madrigal--log-append-obj request-id 4 heading payload)))
(let ((buf (madrigal--ensure-log-buffer))(marker (gethash request-id madrigal--log-request-markers)))(with-current-buffer buf(save-excursion(goto-char (if (and marker (marker-buffer marker)) marker (point-max)))(madrigal--log-insert-src-block `((event . ,heading)(payload . ,payload)))(puthash request-id (copy-marker (point) t) madrigal--log-request-markers)))(madrigal--log-refresh-visibility buf))))
(defun madrigal--provider-for-slot (slot)(pcase slot('code madrigal-llm-provider-code)('reason madrigal-llm-provider-reason)('quick madrigal-llm-provider-quick)(_ nil)))(defun madrigal--current-provider ()(let ((provider (madrigal--provider-for-slot madrigal-default-provider)))(unless provider(user-error "madrigal: set provider `%s' first" madrigal-default-provider))provider))
(let* ((streaming-tool-use (madrigal--provider-capable-p 'streaming-tool-use))(streaming (madrigal--provider-capable-p 'streaming))
(let* ((streaming-tool-use (madrigal--provider-capable-p provider 'streaming-tool-use))(streaming (madrigal--provider-capable-p provider 'streaming))
(let* ((source-buffer (current-buffer))(context-text (plist-get (madrigal--context-window) :text))(request-id (madrigal--log-new-request agent-id source-buffer prompt-text context-text))
(let* ((provider (madrigal--current-provider))(source-buffer (current-buffer))(request-id (madrigal--log-new-request agent-id source-buffer prompt-text nil))
:context (madrigal--system-prompt):reasoning (and madrigal-log-include-reasoningmadrigal-reasoning-level):tools (list (madrigal--exec-ops-tool agent-id request-id)))))
:context (madrigal--system-prompt):reasoning (and madrigal-log-include-reasoningmadrigal-reasoning-level):tools (list (madrigal--exec-ops-tool agent-id request-id)))))(madrigal--configure-provider-reasoning provider)