parent
b58c3c4d31
commit
61d9355c0e
1 changed files with 55 additions and 0 deletions
|
@ -993,17 +993,72 @@ This is meant to be an helper to be called from the window manager."
|
||||||
)
|
)
|
||||||
(gptel-default-mode 'org-mode)
|
(gptel-default-mode 'org-mode)
|
||||||
(gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it
|
(gptel-org-branching-context nil) ;; this is cool but I don't feel comfortable with it
|
||||||
|
(gptel-use-tools 't)
|
||||||
|
|
||||||
:bind
|
:bind
|
||||||
("C-c a a" . gptel-add)
|
("C-c a a" . gptel-add)
|
||||||
("C-c a f" . gptel-add-file)
|
("C-c a f" . gptel-add-file)
|
||||||
("C-c a r" . gptel-context-remove-all)
|
("C-c a r" . gptel-context-remove-all)
|
||||||
("C-c a " . gptel-menu)
|
("C-c a " . gptel-menu)
|
||||||
|
|
||||||
|
|
||||||
:config
|
:config
|
||||||
(require 'gptel-curl)
|
(require 'gptel-curl)
|
||||||
|
|
||||||
;; (add-hook 'gptel-post-response-functions 'gptel-end-of-response)
|
;; (add-hook 'gptel-post-response-functions 'gptel-end-of-response)
|
||||||
;; (add-hook 'gptel-post-stream-hook 'gptel-auto-scroll)
|
;; (add-hook 'gptel-post-stream-hook 'gptel-auto-scroll)
|
||||||
|
|
||||||
|
(setq gptel-tools (mapcar (lambda (tool) (apply #'gptel-make-tool tool))
|
||||||
|
'((
|
||||||
|
:name "create_file"
|
||||||
|
:function (lambda (path filename content)
|
||||||
|
(let ((full-path (expand-file-name filename path)))
|
||||||
|
(with-temp-buffer
|
||||||
|
(insert content)
|
||||||
|
(write-file full-path))
|
||||||
|
(format-read "Created file %s in %s" filename path)))
|
||||||
|
:description "Create a new file with the specified content"
|
||||||
|
:args (list '(:name "path"
|
||||||
|
:type string
|
||||||
|
:description "The directory where to create the file")
|
||||||
|
'(:name "filename"
|
||||||
|
:type string
|
||||||
|
:description "The name of the file to create")
|
||||||
|
'(:name "content"
|
||||||
|
:type string
|
||||||
|
:description "The content to write to the file"))
|
||||||
|
:category "filesystem"
|
||||||
|
)
|
||||||
|
(
|
||||||
|
:name "run_command"
|
||||||
|
:confirm 't
|
||||||
|
:function (lambda (command)
|
||||||
|
(shell-command-to-string command))
|
||||||
|
:description "Run arbitrary commands"
|
||||||
|
:args (list '(:name "command"
|
||||||
|
:type string
|
||||||
|
:description "The content to run e.g. 'ls *' or 'fd <pattern> <path>'"))
|
||||||
|
)
|
||||||
|
(
|
||||||
|
:name "get_weather"
|
||||||
|
:function (lambda (location)
|
||||||
|
(url-retrieve-synchronously "api.weather.com/..."
|
||||||
|
location unit))
|
||||||
|
:description "Get the current weather in a given location"
|
||||||
|
:args (list '(:name "location"
|
||||||
|
:type string
|
||||||
|
:description "The city and state, e.g. San Francisco, CA")
|
||||||
|
'(:name "unit"
|
||||||
|
:type string
|
||||||
|
:enum ["celsius" "farenheit"]
|
||||||
|
:description
|
||||||
|
"The unit of temperature, either 'celsius' or 'fahrenheit"
|
||||||
|
:optional t
|
||||||
|
))
|
||||||
|
)
|
||||||
|
))
|
||||||
|
)
|
||||||
|
|
||||||
(defun ccr/suggest-eshell-command ()
|
(defun ccr/suggest-eshell-command ()
|
||||||
(interactive)
|
(interactive)
|
||||||
(save-excursion
|
(save-excursion
|
||||||
|
|
Loading…
Add table
Reference in a new issue