Round 381: Upstash ext, Turso ext, Fauna ext, DynamoDB/CosmosDB ext (20 commands)

ober

1a22b28b39776de03fe1dd17f787ef2687235e15

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index ecf1c21..c734af6 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 381 — Upstash ext, Turso ext, Fauna ext, DynamoDB/CosmosDB ext
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| Upstash Redis | — | `upstash-redis` | :orange_circle: Scaffolded |
+| Upstash Kafka | — | `upstash-kafka` | :orange_circle: Scaffolded |
+| Upstash QStash | — | `upstash-qstash` | :orange_circle: Scaffolded |
+| Upstash Vector | — | `upstash-vector` | :orange_circle: Scaffolded |
+| Turso databases | — | `turso-databases` | :orange_circle: Scaffolded |
+| Turso groups | — | `turso-groups` | :orange_circle: Scaffolded |
+| Turso tokens | — | `turso-tokens` | :orange_circle: Scaffolded |
+| Turso replicas | — | `turso-replicas` | :orange_circle: Scaffolded |
+| Fauna databases | — | `fauna-databases` | :orange_circle: Scaffolded |
+| Fauna collections | — | `fauna-collections` | :orange_circle: Scaffolded |
+| Fauna indexes | — | `fauna-indexes` | :orange_circle: Scaffolded |
+| Fauna functions | — | `fauna-functions` | :orange_circle: Scaffolded |
+| DynamoDB tables | — | `dynamo-tables` | :orange_circle: Scaffolded |
+| DynamoDB query | — | `dynamo-query` | :orange_circle: Scaffolded |
+| DynamoDB scan | — | `dynamo-scan` | :orange_circle: Scaffolded |
+| DynamoDB streams | — | `dynamo-streams` | :orange_circle: Scaffolded |
+| CosmosDB databases | — | `cosmos-databases` | :orange_circle: Scaffolded |
+| CosmosDB containers | — | `cosmos-containers` | :orange_circle: Scaffolded |
+| CosmosDB SQL query | — | `cosmos-queries` | :orange_circle: Scaffolded |
+| CosmosDB throughput | — | `cosmos-throughput` | :orange_circle: Scaffolded |
+
 ### Round 380 — Supabase ext, PlanetScale ext, Neon ext, CockroachDB/TiDB ext
 
 | Feature | Emacs | jemacs | Status |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index a3fb1cc..de85e26 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -26919,3 +26919,48 @@
 (def (cmd-tidb-monitoring app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "TiDB: showing monitoring dashboard")))
+
+;; Round 381 batch 2 — Fauna ext, DynamoDB/CosmosDB ext
+(def (cmd-fauna-indexes app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fauna: listing indexes")))
+
+(def (cmd-fauna-functions app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fauna: listing user-defined functions")))
+
+(def (cmd-dynamo-tables app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "DynamoDB: listing tables")))
+
+(def (cmd-dynamo-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Table name: "
+      (lambda (table)
+        (echo-message! echo (str "DynamoDB: querying " table))))))
+
+(def (cmd-dynamo-scan app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "DynamoDB: scanning table")))
+
+(def (cmd-dynamo-streams app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "DynamoDB: listing streams")))
+
+(def (cmd-cosmos-databases app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CosmosDB: listing databases")))
+
+(def (cmd-cosmos-containers app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CosmosDB: listing containers")))
+
+(def (cmd-cosmos-queries app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "SQL query: "
+      (lambda (sql)
+        (echo-message! echo (str "CosmosDB: executing: " sql))))))
+
+(def (cmd-cosmos-throughput app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CosmosDB: showing throughput metrics")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index c83f473..3826dff 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -27700,3 +27700,44 @@
 (def (cmd-neon-databases app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Neon: listing databases")))
+
+;; Round 381 batch 1 — Upstash ext, Turso ext
+(def (cmd-upstash-redis app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Upstash: managing Redis database")))
+
+(def (cmd-upstash-kafka app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Upstash: managing Kafka cluster")))
+
+(def (cmd-upstash-qstash app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Upstash: managing QStash messages")))
+
+(def (cmd-upstash-vector app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Upstash: managing Vector index")))
+
+(def (cmd-turso-databases app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Turso: listing databases")))
+
+(def (cmd-turso-groups app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Turso: listing groups")))
+
+(def (cmd-turso-tokens app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Turso: managing auth tokens")))
+
+(def (cmd-turso-replicas app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Turso: listing replicas")))
+
+(def (cmd-fauna-databases app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fauna: listing databases")))
+
+(def (cmd-fauna-collections app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fauna: listing collections")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 0300841..ecbb2a8 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -9464,4 +9464,26 @@
   (register-command! 'tidb-backups cmd-tidb-backups)
   (register-command! 'tidb-imports cmd-tidb-imports)
   (register-command! 'tidb-monitoring cmd-tidb-monitoring)
+
+  ;; Round 381 — Upstash ext, Turso ext, Fauna ext, DynamoDB/CosmosDB ext
+  (register-command! 'upstash-redis cmd-upstash-redis)
+  (register-command! 'upstash-kafka cmd-upstash-kafka)
+  (register-command! 'upstash-qstash cmd-upstash-qstash)
+  (register-command! 'upstash-vector cmd-upstash-vector)
+  (register-command! 'turso-databases cmd-turso-databases)
+  (register-command! 'turso-groups cmd-turso-groups)
+  (register-command! 'turso-tokens cmd-turso-tokens)
+  (register-command! 'turso-replicas cmd-turso-replicas)
+  (register-command! 'fauna-databases cmd-fauna-databases)
+  (register-command! 'fauna-collections cmd-fauna-collections)
+  (register-command! 'fauna-indexes cmd-fauna-indexes)
+  (register-command! 'fauna-functions cmd-fauna-functions)
+  (register-command! 'dynamo-tables cmd-dynamo-tables)
+  (register-command! 'dynamo-query cmd-dynamo-query)
+  (register-command! 'dynamo-scan cmd-dynamo-scan)
+  (register-command! 'dynamo-streams cmd-dynamo-streams)
+  (register-command! 'cosmos-databases cmd-cosmos-databases)
+  (register-command! 'cosmos-containers cmd-cosmos-containers)
+  (register-command! 'cosmos-queries cmd-cosmos-queries)
+  (register-command! 'cosmos-throughput cmd-cosmos-throughput)
 )