Round 384: Ollama ext, vLLM ext, TGI ext, LiteLLM/Replicate ext (20 commands)

ober

cdd6e99236fab8d725b5f4fbe9f9547985059d03

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 8a2d7f0..bb906e4 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,31 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 384 — Ollama ext, vLLM ext, TGI ext, LiteLLM/Replicate ext
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| Ollama run model | — | `ollama-run` | :orange_circle: Scaffolded |
+| Ollama list models | — | `ollama-list` | :orange_circle: Scaffolded |
+| Ollama pull model | — | `ollama-pull` | :orange_circle: Scaffolded |
+| Ollama create model | — | `ollama-create` | :orange_circle: Scaffolded |
+| vLLM serve | — | `vllm-serve` | :orange_circle: Scaffolded |
+| vLLM models | — | `vllm-models` | :orange_circle: Scaffolded |
+| vLLM generate | — | `vllm-generate` | :orange_circle: Scaffolded |
+| vLLM benchmark | — | `vllm-benchmark` | :orange_circle: Scaffolded |
+| TGI serve | — | `tgi-serve` | :orange_circle: Scaffolded |
+| TGI health | — | `tgi-health` | :orange_circle: Scaffolded |
+| TGI generate | — | `tgi-generate` | :orange_circle: Scaffolded |
+| TGI metrics | — | `tgi-metrics` | :orange_circle: Scaffolded |
+| LiteLLM models | — | `litellm-models` | :orange_circle: Scaffolded |
+| LiteLLM proxy | — | `litellm-proxy` | :orange_circle: Scaffolded |
+| LiteLLM budget | — | `litellm-budget` | :orange_circle: Scaffolded |
+| LiteLLM API keys | — | `litellm-keys` | :orange_circle: Scaffolded |
+| Replicate run | — | `replicate-run` | :orange_circle: Scaffolded |
+| Replicate models | — | `replicate-models` | :orange_circle: Scaffolded |
+| Replicate predictions | — | `replicate-predictions` | :orange_circle: Scaffolded |
+| Replicate collections | — | `replicate-collections` | :orange_circle: Scaffolded |
+
 ### Round 383 — LangChain ext, LlamaIndex ext, OpenAI ext, Anthropic/HuggingFace ext
 
 | Feature | Emacs | jemacs | Status |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 8eb8ad5..a26ae13 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -27048,3 +27048,48 @@
 (def (cmd-huggingface-inference app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "HuggingFace: running inference")))
+
+;; Round 384 batch 2 — TGI ext, LiteLLM/Replicate ext
+(def (cmd-tgi-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Prompt: "
+      (lambda (prompt)
+        (echo-message! echo (str "TGI: generating: " prompt))))))
+
+(def (cmd-tgi-metrics app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TGI: showing metrics")))
+
+(def (cmd-litellm-models app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "LiteLLM: listing available models")))
+
+(def (cmd-litellm-proxy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "LiteLLM: starting proxy server")))
+
+(def (cmd-litellm-budget app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "LiteLLM: showing budget/spend")))
+
+(def (cmd-litellm-keys app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "LiteLLM: managing API keys")))
+
+(def (cmd-replicate-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Model ID: "
+      (lambda (model)
+        (echo-message! echo (str "Replicate: running " model))))))
+
+(def (cmd-replicate-models app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Replicate: browsing models")))
+
+(def (cmd-replicate-predictions app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Replicate: listing predictions")))
+
+(def (cmd-replicate-collections app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Replicate: browsing collections")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 96cda0f..c9076e6 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -27829,3 +27829,50 @@
 (def (cmd-openai-embeddings app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "OpenAI: generating embeddings")))
+
+;; Round 384 batch 1 — Ollama ext, vLLM ext
+(def (cmd-ollama-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Model name: "
+      (lambda (model)
+        (echo-message! echo (str "Ollama: running " model))))))
+
+(def (cmd-ollama-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ollama: listing local models")))
+
+(def (cmd-ollama-pull app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Model to pull: "
+      (lambda (model)
+        (echo-message! echo (str "Ollama: pulling " model))))))
+
+(def (cmd-ollama-create app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ollama: creating custom model")))
+
+(def (cmd-vllm-serve app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "vLLM: starting serving engine")))
+
+(def (cmd-vllm-models app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "vLLM: listing served models")))
+
+(def (cmd-vllm-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Prompt: "
+      (lambda (prompt)
+        (echo-message! echo (str "vLLM: generating: " prompt))))))
+
+(def (cmd-vllm-benchmark app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "vLLM: running benchmark")))
+
+(def (cmd-tgi-serve app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TGI: starting text generation server")))
+
+(def (cmd-tgi-health app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "TGI: checking health")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 500d381..1d416f8 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -9530,4 +9530,26 @@
   (register-command! 'huggingface-datasets cmd-huggingface-datasets)
   (register-command! 'huggingface-spaces cmd-huggingface-spaces)
   (register-command! 'huggingface-inference cmd-huggingface-inference)
+
+  ;; Round 384 — Ollama ext, vLLM ext, TGI ext, LiteLLM/Replicate ext
+  (register-command! 'ollama-run cmd-ollama-run)
+  (register-command! 'ollama-list cmd-ollama-list)
+  (register-command! 'ollama-pull cmd-ollama-pull)
+  (register-command! 'ollama-create cmd-ollama-create)
+  (register-command! 'vllm-serve cmd-vllm-serve)
+  (register-command! 'vllm-models cmd-vllm-models)
+  (register-command! 'vllm-generate cmd-vllm-generate)
+  (register-command! 'vllm-benchmark cmd-vllm-benchmark)
+  (register-command! 'tgi-serve cmd-tgi-serve)
+  (register-command! 'tgi-health cmd-tgi-health)
+  (register-command! 'tgi-generate cmd-tgi-generate)
+  (register-command! 'tgi-metrics cmd-tgi-metrics)
+  (register-command! 'litellm-models cmd-litellm-models)
+  (register-command! 'litellm-proxy cmd-litellm-proxy)
+  (register-command! 'litellm-budget cmd-litellm-budget)
+  (register-command! 'litellm-keys cmd-litellm-keys)
+  (register-command! 'replicate-run cmd-replicate-run)
+  (register-command! 'replicate-models cmd-replicate-models)
+  (register-command! 'replicate-predictions cmd-replicate-predictions)
+  (register-command! 'replicate-collections cmd-replicate-collections)
 )