Round 355: Dagger ext, Earthly ext, Mise ext, Asdf ext, Direnv ext (20 commands)

ober

78af3e8845574a49e1bc68ecc62a15161bab5bfc

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 1d02eae..2e78803 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 355 — Dagger ext, Earthly ext, Mise ext, Asdf ext, Direnv ext
+
+| Feature | Status | Notes |
+|---|---|---|
+| dagger-call | :orange_circle: | Dagger: call a function |
+| dagger-functions | :orange_circle: | Dagger: list functions |
+| dagger-shell | :orange_circle: | Dagger: interactive shell |
+| dagger-run | :orange_circle: | Dagger: run command |
+| earthly-build | :orange_circle: | Earthly: build target |
+| earthly-targets | :orange_circle: | Earthly: list targets |
+| earthly-secrets | :orange_circle: | Earthly: list secrets |
+| earthly-ls | :orange_circle: | Earthly: list artifacts |
+| mise-install | :orange_circle: | Mise: install tool |
+| mise-use | :orange_circle: | Mise: use tool version |
+| mise-list | :orange_circle: | Mise: list installed tools |
+| mise-env | :orange_circle: | Mise: show environment |
+| asdf-install | :orange_circle: | Asdf: install plugin version |
+| asdf-current | :orange_circle: | Asdf: show current versions |
+| asdf-list | :orange_circle: | Asdf: list installed versions |
+| asdf-plugin | :orange_circle: | Asdf: manage plugin |
+| direnv-reload | :orange_circle: | Direnv: reload environment |
+| direnv-deny | :orange_circle: | Direnv: deny .envrc |
+| direnv-status | :orange_circle: | Direnv: show status |
+| direnv-edit | :orange_circle: | Direnv: edit .envrc |
+
 ### Round 354 — Crossplane ext, Kustomize ext, Jsonnet ext, CUE ext, Dhall ext
 
 | Feature | Status | Notes |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 5ec84e3..d31c002 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -25759,3 +25759,49 @@
 (def (cmd-dhall-freeze app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Dhall: freezing imports")))
+
+;;; Round 355 — Mise ext, Asdf ext, Direnv ext (batch 2)
+
+(def (cmd-mise-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mise: listing installed tools")))
+
+(def (cmd-mise-env app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Mise: showing environment")))
+
+(def (cmd-asdf-install app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Asdf install plugin version: "
+      (lambda (pv)
+        (echo-message! echo (str "Asdf: installing " pv))))))
+
+(def (cmd-asdf-current app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Asdf: showing current versions")))
+
+(def (cmd-asdf-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Asdf: listing installed versions")))
+
+(def (cmd-asdf-plugin app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Asdf plugin name: "
+      (lambda (name)
+        (echo-message! echo (str "Asdf: managing plugin " name))))))
+
+(def (cmd-direnv-reload app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Direnv: reloading environment")))
+
+(def (cmd-direnv-deny app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Direnv: denying .envrc")))
+
+(def (cmd-direnv-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Direnv: showing status")))
+
+(def (cmd-direnv-edit app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Direnv: editing .envrc")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index f765d41..1b155a1 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -26478,3 +26478,55 @@
     (echo-read-string echo "Jsonnet format file: "
       (lambda (file)
         (echo-message! echo (str "Jsonnet: formatting " file))))))
+
+;;; Round 355 — Dagger ext, Earthly ext, Mise ext, Asdf ext, Direnv ext (batch 1)
+
+(def (cmd-dagger-call app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Dagger function: "
+      (lambda (fn)
+        (echo-message! echo (str "Dagger: calling " fn))))))
+
+(def (cmd-dagger-functions app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dagger: listing functions")))
+
+(def (cmd-dagger-shell app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Dagger: opening interactive shell")))
+
+(def (cmd-dagger-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Dagger run command: "
+      (lambda (cmd)
+        (echo-message! echo (str "Dagger: running " cmd))))))
+
+(def (cmd-earthly-build app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Earthly target: "
+      (lambda (target)
+        (echo-message! echo (str "Earthly: building " target))))))
+
+(def (cmd-earthly-targets app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Earthly: listing targets")))
+
+(def (cmd-earthly-secrets app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Earthly: listing secrets")))
+
+(def (cmd-earthly-ls app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Earthly: listing artifacts")))
+
+(def (cmd-mise-install app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Mise install tool@version: "
+      (lambda (tool)
+        (echo-message! echo (str "Mise: installing " tool))))))
+
+(def (cmd-mise-use app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Mise use tool@version: "
+      (lambda (tool)
+        (echo-message! echo (str "Mise: using " tool))))))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 6b2710c..65a16ad 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -8892,4 +8892,26 @@
   (register-command! 'dhall-lint cmd-dhall-lint)
   (register-command! 'dhall-type cmd-dhall-type)
   (register-command! 'dhall-freeze cmd-dhall-freeze)
+
+  ;; Round 355 — Dagger ext, Earthly ext, Mise ext, Asdf ext, Direnv ext
+  (register-command! 'dagger-call cmd-dagger-call)
+  (register-command! 'dagger-functions cmd-dagger-functions)
+  (register-command! 'dagger-shell cmd-dagger-shell)
+  (register-command! 'dagger-run cmd-dagger-run)
+  (register-command! 'earthly-build cmd-earthly-build)
+  (register-command! 'earthly-targets cmd-earthly-targets)
+  (register-command! 'earthly-secrets cmd-earthly-secrets)
+  (register-command! 'earthly-ls cmd-earthly-ls)
+  (register-command! 'mise-install cmd-mise-install)
+  (register-command! 'mise-use cmd-mise-use)
+  (register-command! 'mise-list cmd-mise-list)
+  (register-command! 'mise-env cmd-mise-env)
+  (register-command! 'asdf-install cmd-asdf-install)
+  (register-command! 'asdf-current cmd-asdf-current)
+  (register-command! 'asdf-list cmd-asdf-list)
+  (register-command! 'asdf-plugin cmd-asdf-plugin)
+  (register-command! 'direnv-reload cmd-direnv-reload)
+  (register-command! 'direnv-deny cmd-direnv-deny)
+  (register-command! 'direnv-status cmd-direnv-status)
+  (register-command! 'direnv-edit cmd-direnv-edit)
 )