branch: elpa/aidermacs commit 496286785c57d8f19c9070543846df8012b92fc7 Author: Arthur Heymans <art...@aheymans.xyz> Commit: Arthur Heymans <art...@aheymans.xyz>
Only show models currently supported by aider Signed-off-by: Arthur Heymans <art...@aheymans.xyz> --- aidermacs-models.el | 25 +++++++++++++++++++++++-- 1 file changed, 23 insertions(+), 2 deletions(-) diff --git a/aidermacs-models.el b/aidermacs-models.el index 79df0f3be5..66b9d8bf78 100644 --- a/aidermacs-models.el +++ b/aidermacs-models.el @@ -57,16 +57,37 @@ (alist-get 'name model)))))) models))))) +(defun aidermacs--get-supported-models () + "Get list of models supported by aider." + (with-temp-buffer + (call-process "aider" nil t nil "--list-models" "/") + (let ((models (seq-filter + (lambda (line) + (string-prefix-p "- " line)) + (split-string (buffer-string) "\n" t)))) + (setq models (mapcar (lambda (line) + (substring line 2)) ; Remove "- " prefix + models)) + (message "Supported models: %S" models) + models))) + (defun aidermacs--get-available-models () "Get list of available models from multiple providers." - (let ((models nil)) + (let ((models nil) + (supported-models (aidermacs--get-supported-models))) (dolist (url '("https://api.openai.com/v1" "https://openrouter.ai/api/v1" "https://api.deepseek.com" "https://api.anthropic.com/v1" "https://generativelanguage.googleapis.com/v1beta")) (condition-case err - (setq models (append models (fetch-openai-compatible-models url))) + (let* ((fetched-models (fetch-openai-compatible-models url)) + (filtered-models (seq-filter (lambda (model) + (member model supported-models)) + fetched-models))) + (message "Fetched models from %s: %S" url fetched-models) + (message "Filtered models from %s: %S" url filtered-models) + (setq models (append models filtered-models))) (error (message "Failed to fetch models from %s: %s" url err)))) models))