Round 376: dbt ext, Fivetran ext, Airbyte ext, Stitch/Singer ext (20 commands)

ober

e3719ba43900be738f30fbca7d8048ec119f3d24

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index 10924b9..5a6a890 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 376 — dbt ext, Fivetran ext, Airbyte ext, Stitch/Singer ext
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| dbt run models | — | `dbt-run` | :orange_circle: Scaffolded |
+| dbt run tests | — | `dbt-test` | :orange_circle: Scaffolded |
+| dbt compile | — | `dbt-compile` | :orange_circle: Scaffolded |
+| dbt generate docs | — | `dbt-docs` | :orange_circle: Scaffolded |
+| Fivetran connectors | — | `fivetran-connectors` | :orange_circle: Scaffolded |
+| Fivetran trigger sync | — | `fivetran-sync` | :orange_circle: Scaffolded |
+| Fivetran sync status | — | `fivetran-status` | :orange_circle: Scaffolded |
+| Fivetran sync logs | — | `fivetran-logs` | :orange_circle: Scaffolded |
+| Airbyte connections | — | `airbyte-connections` | :orange_circle: Scaffolded |
+| Airbyte trigger sync | — | `airbyte-sync` | :orange_circle: Scaffolded |
+| Airbyte sources | — | `airbyte-sources` | :orange_circle: Scaffolded |
+| Airbyte destinations | — | `airbyte-destinations` | :orange_circle: Scaffolded |
+| Stitch integrations | — | `stitch-integrations` | :orange_circle: Scaffolded |
+| Stitch recent loads | — | `stitch-loads` | :orange_circle: Scaffolded |
+| Stitch sources | — | `stitch-sources` | :orange_circle: Scaffolded |
+| Stitch schemas | — | `stitch-schemas` | :orange_circle: Scaffolded |
+| Singer taps | — | `singer-taps` | :orange_circle: Scaffolded |
+| Singer targets | — | `singer-targets` | :orange_circle: Scaffolded |
+| Singer catalog | — | `singer-catalog` | :orange_circle: Scaffolded |
+| Singer state | — | `singer-state` | :orange_circle: Scaffolded |
+
 ### Round 375 — MLflow ext, W&B ext, Kubeflow ext, SageMaker/Ray ext
 
 | Feature | Emacs | jemacs | Status |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index 420f51e..2abd085 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -26710,3 +26710,44 @@
 (def (cmd-ray-tune app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Ray Tune: listing trials")))
+
+;; Round 376 batch 2 — Airbyte ext, Stitch/Singer ext
+(def (cmd-airbyte-sources app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Airbyte: listing sources")))
+
+(def (cmd-airbyte-destinations app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Airbyte: listing destinations")))
+
+(def (cmd-stitch-integrations app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Stitch: listing integrations")))
+
+(def (cmd-stitch-loads app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Stitch: listing recent loads")))
+
+(def (cmd-stitch-sources app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Stitch: listing sources")))
+
+(def (cmd-stitch-schemas app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Stitch: listing schemas")))
+
+(def (cmd-singer-taps app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Singer: listing available taps")))
+
+(def (cmd-singer-targets app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Singer: listing available targets")))
+
+(def (cmd-singer-catalog app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Singer: discovering catalog")))
+
+(def (cmd-singer-state app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Singer: managing replication state")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 52965f4..f02728a 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -27489,3 +27489,44 @@
 (def (cmd-kubeflow-experiments app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Kubeflow: listing experiments")))
+
+;; Round 376 batch 1 — dbt ext, Fivetran ext
+(def (cmd-dbt-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "dbt: running models")))
+
+(def (cmd-dbt-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "dbt: running tests")))
+
+(def (cmd-dbt-compile app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "dbt: compiling project")))
+
+(def (cmd-dbt-docs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "dbt: generating documentation")))
+
+(def (cmd-fivetran-connectors app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fivetran: listing connectors")))
+
+(def (cmd-fivetran-sync app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fivetran: triggering sync")))
+
+(def (cmd-fivetran-status app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fivetran: checking sync status")))
+
+(def (cmd-fivetran-logs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Fivetran: viewing sync logs")))
+
+(def (cmd-airbyte-connections app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Airbyte: listing connections")))
+
+(def (cmd-airbyte-sync app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Airbyte: triggering sync")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 3406fbb..03b5249 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -9354,4 +9354,26 @@
   (register-command! 'ray-clusters cmd-ray-clusters)
   (register-command! 'ray-serve cmd-ray-serve)
   (register-command! 'ray-tune cmd-ray-tune)
+
+  ;; Round 376 — dbt ext, Fivetran ext, Airbyte ext, Stitch/Singer ext
+  (register-command! 'dbt-run cmd-dbt-run)
+  (register-command! 'dbt-test cmd-dbt-test)
+  (register-command! 'dbt-compile cmd-dbt-compile)
+  (register-command! 'dbt-docs cmd-dbt-docs)
+  (register-command! 'fivetran-connectors cmd-fivetran-connectors)
+  (register-command! 'fivetran-sync cmd-fivetran-sync)
+  (register-command! 'fivetran-status cmd-fivetran-status)
+  (register-command! 'fivetran-logs cmd-fivetran-logs)
+  (register-command! 'airbyte-connections cmd-airbyte-connections)
+  (register-command! 'airbyte-sync cmd-airbyte-sync)
+  (register-command! 'airbyte-sources cmd-airbyte-sources)
+  (register-command! 'airbyte-destinations cmd-airbyte-destinations)
+  (register-command! 'stitch-integrations cmd-stitch-integrations)
+  (register-command! 'stitch-loads cmd-stitch-loads)
+  (register-command! 'stitch-sources cmd-stitch-sources)
+  (register-command! 'stitch-schemas cmd-stitch-schemas)
+  (register-command! 'singer-taps cmd-singer-taps)
+  (register-command! 'singer-targets cmd-singer-targets)
+  (register-command! 'singer-catalog cmd-singer-catalog)
+  (register-command! 'singer-state cmd-singer-state)
 )