Round 370: OpenAPI ext, Swagger ext, Postman ext, Insomnia/HTTPie ext (20 commands)

ober

05b3102d7f9c3ed996f3b399f7e538536601aa10

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 1b1198f..05e6b5c 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 370 — OpenAPI ext, Swagger ext, Postman ext, Insomnia/HTTPie ext
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| OpenAPI spec diff | — | `openapi-diff` | :orange_circle: Scaffolded |
+| OpenAPI mock server | — | `openapi-mock` | :orange_circle: Scaffolded |
+| OpenAPI merge specs | — | `openapi-merge` | :orange_circle: Scaffolded |
+| OpenAPI bundle refs | — | `openapi-bundle` | :orange_circle: Scaffolded |
+| Swagger UI preview | — | `swagger-ui` | :orange_circle: Scaffolded |
+| Swagger editor | — | `swagger-editor` | :orange_circle: Scaffolded |
+| Swagger code generation | — | `swagger-codegen` | :orange_circle: Scaffolded |
+| Swagger mock server | — | `swagger-mock` | :orange_circle: Scaffolded |
+| Postman import | — | `postman-import` | :orange_circle: Scaffolded |
+| Postman export | — | `postman-export` | :orange_circle: Scaffolded |
+| Postman run collection | — | `postman-run` | :orange_circle: Scaffolded |
+| Postman environments | — | `postman-env` | :orange_circle: Scaffolded |
+| Insomnia import | — | `insomnia-import` | :orange_circle: Scaffolded |
+| Insomnia export | — | `insomnia-export` | :orange_circle: Scaffolded |
+| Insomnia run requests | — | `insomnia-run` | :orange_circle: Scaffolded |
+| Insomnia environments | — | `insomnia-env` | :orange_circle: Scaffolded |
+| HTTPie send request | — | `httpie-send` | :orange_circle: Scaffolded |
+| HTTPie sessions | — | `httpie-sessions` | :orange_circle: Scaffolded |
+| HTTPie plugins | — | `httpie-plugins` | :orange_circle: Scaffolded |
+| HTTPie auth config | — | `httpie-auth` | :orange_circle: Scaffolded |
+
 ### Round 369 — GraphQL ext, gRPC ext, Protobuf ext, Avro/Serialization ext
 
 | Feature | Emacs | jemacs | Status |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 17f84fd..6a12622 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -26456,3 +26456,46 @@
 (def (cmd-ion-decode app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Amazon Ion: decoding data")))
+
+;; Round 370 batch 2 — Postman ext, Insomnia/HTTPie ext
+(def (cmd-postman-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Postman: running collection")))
+
+(def (cmd-postman-env app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Postman: managing environments")))
+
+(def (cmd-insomnia-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Insomnia: importing workspace")))
+
+(def (cmd-insomnia-export app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Insomnia: exporting workspace")))
+
+(def (cmd-insomnia-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Insomnia: running request collection")))
+
+(def (cmd-insomnia-env app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Insomnia: managing environments")))
+
+(def (cmd-httpie-send app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "URL: "
+      (lambda (url)
+        (echo-message! echo (str "HTTPie: sending request to " url))))))
+
+(def (cmd-httpie-sessions app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "HTTPie: managing sessions")))
+
+(def (cmd-httpie-plugins app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "HTTPie: listing plugins")))
+
+(def (cmd-httpie-auth app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "HTTPie: configuring authentication")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 57978ee..dc3c8b5 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -27225,3 +27225,46 @@
 (def (cmd-protobuf-generate app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Protobuf: generating code stubs")))
+
+;; Round 370 batch 1 — OpenAPI ext, Swagger ext
+(def (cmd-openapi-diff app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenAPI: computing spec diff")))
+
+(def (cmd-openapi-mock app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenAPI: generating mock server")))
+
+(def (cmd-openapi-merge app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenAPI: merging specs")))
+
+(def (cmd-openapi-bundle app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenAPI: bundling spec with references")))
+
+(def (cmd-swagger-ui app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Swagger: launching UI preview")))
+
+(def (cmd-swagger-editor app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Swagger: opening editor")))
+
+(def (cmd-swagger-codegen app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Target language: "
+      (lambda (lang)
+        (echo-message! echo (str "Swagger: generating " lang " client"))))))
+
+(def (cmd-swagger-mock app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Swagger: starting mock server")))
+
+(def (cmd-postman-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Postman: importing collection")))
+
+(def (cmd-postman-export app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Postman: exporting collection")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 5169269..1d23112 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -9222,4 +9222,26 @@
   (register-command! 'capnproto-encode cmd-capnproto-encode)
   (register-command! 'ion-encode cmd-ion-encode)
   (register-command! 'ion-decode cmd-ion-decode)
+
+  ;; Round 370 — OpenAPI ext, Swagger ext, Postman ext, Insomnia/HTTPie ext
+  (register-command! 'openapi-diff cmd-openapi-diff)
+  (register-command! 'openapi-mock cmd-openapi-mock)
+  (register-command! 'openapi-merge cmd-openapi-merge)
+  (register-command! 'openapi-bundle cmd-openapi-bundle)
+  (register-command! 'swagger-ui cmd-swagger-ui)
+  (register-command! 'swagger-editor cmd-swagger-editor)
+  (register-command! 'swagger-codegen cmd-swagger-codegen)
+  (register-command! 'swagger-mock cmd-swagger-mock)
+  (register-command! 'postman-import cmd-postman-import)
+  (register-command! 'postman-export cmd-postman-export)
+  (register-command! 'postman-run cmd-postman-run)
+  (register-command! 'postman-env cmd-postman-env)
+  (register-command! 'insomnia-import cmd-insomnia-import)
+  (register-command! 'insomnia-export cmd-insomnia-export)
+  (register-command! 'insomnia-run cmd-insomnia-run)
+  (register-command! 'insomnia-env cmd-insomnia-env)
+  (register-command! 'httpie-send cmd-httpie-send)
+  (register-command! 'httpie-sessions cmd-httpie-sessions)
+  (register-command! 'httpie-plugins cmd-httpie-plugins)
+  (register-command! 'httpie-auth cmd-httpie-auth)
 )