Show provider list with keys and default models in /provider
ober
fde5e0aa7655bec0c5723bafc27926fb318d3355
--- a/src/jcode/ui/tui.ss +++ b/src/jcode/ui/tui.ss @@ -421,11 +421,28 @@ (add-message! state (msg-block-system (format "Provider: ~a (model: ~a)" p (current-model-override)))))) ((equal? cmd "provider") - (add-message! state - (msg-block-system - (format "Provider: ~a\nModel: ~a" - (or (current-provider-override) (config-provider)) - (or (current-model-override) (config-model)))))) + (let* ((cur-p (or (current-provider-override) (config-provider))) + (cur-m (or (current-model-override) (config-model))) + (all '(("anthropic" . "claude-sonnet-4-20250514") + ("openrouter" . "anthropic/claude-sonnet-4") + ("openai" . "gpt-4o") + ("deepseek" . "deepseek-chat") + ("google" . "gemini-2.0-flash") + ("ollama" . "llama3.2"))) + (lines (map (lambda (p) + (let ((name (car p)) + (model (cdr p))) + (format " ~a ~a ~a [~a]" + (if (equal? name cur-p) "●" " ") + name model + (if (config-get-provider-key name) "key" "no key")))) + all))) + (add-message! state + (msg-block-system + (string-append + (format "Current: ~a / ~a\n\nAvailable providers:\n" cur-p cur-m) + (string-join lines "\n") + "\n\nUse: /provider <name>"))))) ((equal? cmd "theme") (cycle-theme!) (add-message! state (msg-block-system "Theme cycled.")))