diff options
Diffstat (limited to 'archive/gptel/gptel-tools/read_buffer.el')
| -rw-r--r-- | archive/gptel/gptel-tools/read_buffer.el | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/archive/gptel/gptel-tools/read_buffer.el b/archive/gptel/gptel-tools/read_buffer.el new file mode 100644 index 00000000..c9136e3c --- /dev/null +++ b/archive/gptel/gptel-tools/read_buffer.el @@ -0,0 +1,33 @@ +;;; read_buffer.el --- Read buffer tool for GPTel -*- coding: utf-8; lexical-binding: t; -*- + +;;; Commentary: +;; Gptel tool that returns the contents of an Emacs buffer by name. + +;;; Code: + +(require 'gptel) + +(defun cj/read-buffer--get-content (buffer) + "Return the substring of BUFFER from `point-min' to `point-max'. +BUFFER may be a buffer object or a buffer name string. Signal an +error when no live buffer matches." + (unless (buffer-live-p (get-buffer buffer)) + (error "Buffer %s is not live" buffer)) + (with-current-buffer buffer + (save-restriction + (widen) + (buffer-substring-no-properties (point-min) (point-max))))) + +(gptel-make-tool + :name "read_buffer" + :function (lambda (buffer) (cj/read-buffer--get-content buffer)) + :description "return the contents of an emacs buffer" + :args (list '(:name "buffer" + :type string + :description "the name of the buffer whose contents are to be retrieved")) + :category "emacs") + +(add-to-list 'gptel-tools (gptel-get-tool '("emacs" "read_buffer"))) + +(provide 'read_buffer) +;;; read_buffer.el ends here |
