Round 258: Prometheus ext, Grafana ext, AWS ext, GCP ext, Azure ext (20 commands)

ober

bdee867840f65a9044743c88b89add86670c58da

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index fa2443e..30923a3 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 258 — Prometheus ext, Grafana ext, AWS ext, GCP ext, Azure ext
+
+| Command | Status | Description |
+|---------|--------|-------------|
+| prometheus-alerts | :orange_circle: | List active Prometheus alerts |
+| prometheus-rules | :orange_circle: | List Prometheus rules |
+| prometheus-graph | :orange_circle: | Graph a PromQL query |
+| grafana-panel-view | :orange_circle: | View a Grafana panel |
+| grafana-alert-rules | :orange_circle: | List Grafana alert rules |
+| grafana-datasource-list | :orange_circle: | List Grafana datasources |
+| grafana-annotation-add | :orange_circle: | Add a Grafana annotation |
+| aws-cloudwatch-logs | :orange_circle: | View AWS CloudWatch logs |
+| aws-iam-list-users | :orange_circle: | List AWS IAM users |
+| aws-sns-list-topics | :orange_circle: | List AWS SNS topics |
+| aws-sqs-list-queues | :orange_circle: | List AWS SQS queues |
+| aws-rds-list-instances | :orange_circle: | List AWS RDS instances |
+| aws-ecs-list-clusters | :orange_circle: | List AWS ECS clusters |
+| gcp-compute-list | :orange_circle: | List GCP compute instances |
+| gcp-storage-list | :orange_circle: | List GCP storage buckets |
+| gcp-pubsub-topics | :orange_circle: | List GCP Pub/Sub topics |
+| gcp-functions-list | :orange_circle: | List GCP Cloud Functions |
+| gcp-iam-roles | :orange_circle: | List GCP IAM roles |
+| azure-vm-list | :orange_circle: | List Azure virtual machines |
+| azure-storage-list | :orange_circle: | List Azure storage accounts |
+
 ### Round 257 — Chef ext, Salt ext, Nix ext, Guix ext
 
 | Command | Status | Description |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index dbfcade..4ed3e4c 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -20905,4 +20905,46 @@
 
 (def (cmd-guix-describe app)
   (let* ((echo (app-state-echo app)))
-    (echo-message! echo "Guix: describing current profile")))
\ No newline at end of file
+    (echo-message! echo "Guix: describing current profile")))
+
+;;; Round 258 — AWS ext, GCP ext, Azure ext (batch 2)
+
+(def (cmd-aws-sqs-list-queues app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "AWS: listing SQS queues")))
+
+(def (cmd-aws-rds-list-instances app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "AWS: listing RDS instances")))
+
+(def (cmd-aws-ecs-list-clusters app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "AWS: listing ECS clusters")))
+
+(def (cmd-gcp-compute-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GCP: listing compute instances")))
+
+(def (cmd-gcp-storage-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GCP: listing storage buckets")))
+
+(def (cmd-gcp-pubsub-topics app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GCP: listing Pub/Sub topics")))
+
+(def (cmd-gcp-functions-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GCP: listing Cloud Functions")))
+
+(def (cmd-gcp-iam-roles app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "GCP: listing IAM roles")))
+
+(def (cmd-azure-vm-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Azure: listing virtual machines")))
+
+(def (cmd-azure-storage-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Azure: listing storage accounts")))
\ No newline at end of file
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index 68232dd..31a5375 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -21522,3 +21522,53 @@
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Salt: listing grains")))
 
+;;; Round 258 — Prometheus ext, Grafana ext, AWS ext, GCP ext, Azure ext (batch 1)
+
+(def (cmd-prometheus-alerts app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Prometheus: listing active alerts")))
+
+(def (cmd-prometheus-rules app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Prometheus: listing rules")))
+
+(def (cmd-prometheus-graph app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "PromQL query: "
+      (lambda (query)
+        (echo-message! echo (str "Prometheus: graphing " query))))))
+
+(def (cmd-grafana-panel-view app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Panel ID: "
+      (lambda (id)
+        (echo-message! echo (str "Grafana: viewing panel " id))))))
+
+(def (cmd-grafana-alert-rules app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Grafana: listing alert rules")))
+
+(def (cmd-grafana-datasource-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Grafana: listing datasources")))
+
+(def (cmd-grafana-annotation-add app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Annotation text: "
+      (lambda (text)
+        (echo-message! echo (str "Grafana: added annotation: " text))))))
+
+(def (cmd-aws-cloudwatch-logs app)
+  (let* ((echo (app-state-echo app)))
+    (echo-read-string echo "Log group: "
+      (lambda (group)
+        (echo-message! echo (str "AWS: viewing CloudWatch logs for " group))))))
+
+(def (cmd-aws-iam-list-users app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "AWS: listing IAM users")))
+
+(def (cmd-aws-sns-list-topics app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "AWS: listing SNS topics")))
+
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index aea9272..aed9e20 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -6835,4 +6835,25 @@
   (register-command! 'guix-system-shepherd-status cmd-guix-system-shepherd-status)
   (register-command! 'guix-size cmd-guix-size)
   (register-command! 'guix-describe cmd-guix-describe)
+  ;; Round 258
+  (register-command! 'prometheus-alerts cmd-prometheus-alerts)
+  (register-command! 'prometheus-rules cmd-prometheus-rules)
+  (register-command! 'prometheus-graph cmd-prometheus-graph)
+  (register-command! 'grafana-panel-view cmd-grafana-panel-view)
+  (register-command! 'grafana-alert-rules cmd-grafana-alert-rules)
+  (register-command! 'grafana-datasource-list cmd-grafana-datasource-list)
+  (register-command! 'grafana-annotation-add cmd-grafana-annotation-add)
+  (register-command! 'aws-cloudwatch-logs cmd-aws-cloudwatch-logs)
+  (register-command! 'aws-iam-list-users cmd-aws-iam-list-users)
+  (register-command! 'aws-sns-list-topics cmd-aws-sns-list-topics)
+  (register-command! 'aws-sqs-list-queues cmd-aws-sqs-list-queues)
+  (register-command! 'aws-rds-list-instances cmd-aws-rds-list-instances)
+  (register-command! 'aws-ecs-list-clusters cmd-aws-ecs-list-clusters)
+  (register-command! 'gcp-compute-list cmd-gcp-compute-list)
+  (register-command! 'gcp-storage-list cmd-gcp-storage-list)
+  (register-command! 'gcp-pubsub-topics cmd-gcp-pubsub-topics)
+  (register-command! 'gcp-functions-list cmd-gcp-functions-list)
+  (register-command! 'gcp-iam-roles cmd-gcp-iam-roles)
+  (register-command! 'azure-vm-list cmd-azure-vm-list)
+  (register-command! 'azure-storage-list cmd-azure-storage-list)
 )