@jaguilar87/gaia-ops 3.2.2 → 3.2.3
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,35 @@ All notable changes to the CLAUDE.md orchestrator instructions are documented in
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [3.2.3] - 2025-12-09
|
|
9
|
+
|
|
10
|
+
### Service-Level Permission Wildcards
|
|
11
|
+
|
|
12
|
+
Simplified permission patterns using service-level wildcards for better Claude Code compatibility.
|
|
13
|
+
|
|
14
|
+
#### Changed
|
|
15
|
+
- **AWS patterns**: Simplified from `Bash(aws rds describe-:*)` to `Bash(aws rds :*)`
|
|
16
|
+
- Service-level wildcards: `aws ec2`, `aws rds`, `aws s3`, `aws iam`, etc.
|
|
17
|
+
- Works around Claude Code pattern matching issues with hyphens
|
|
18
|
+
- **GCP patterns**: Simplified to `Bash(gcloud compute :*)`, `Bash(gcloud container :*)`, etc.
|
|
19
|
+
- **Format standardization**: Removed spaces before `:*` for commands without arguments
|
|
20
|
+
|
|
21
|
+
#### Fixed
|
|
22
|
+
- Agent README files renamed to `_README.md` to avoid Claude Code parse errors
|
|
23
|
+
- Pattern matching now works for `aws rds describe-db-instances` and similar commands
|
|
24
|
+
|
|
25
|
+
#### Impact
|
|
26
|
+
- **Read-only commands**: Execute automatically ✓
|
|
27
|
+
- **Modification commands** (start/stop, upload, resize): Now execute automatically (Option A1)
|
|
28
|
+
- **Destructive commands** (delete, terminate): Still blocked ✓
|
|
29
|
+
|
|
30
|
+
#### Philosophy (Option A1 - Permissive with guardrails)
|
|
31
|
+
- Wide `allow[]` for entire services (e.g., `aws ec2 :*`)
|
|
32
|
+
- Strict `deny[]` for destructive operations
|
|
33
|
+
- Trade-off: Modification commands no longer require confirmation
|
|
34
|
+
|
|
35
|
+
---
|
|
36
|
+
|
|
8
37
|
## [3.2.2] - 2025-12-09
|
|
9
38
|
|
|
10
39
|
### Enhanced Permissions System
|
package/package.json
CHANGED
|
@@ -185,102 +185,46 @@
|
|
|
185
185
|
"Bash(git tag:*)",
|
|
186
186
|
"Bash(git for-each-ref:*)",
|
|
187
187
|
|
|
188
|
-
"Bash(aws sts:*)",
|
|
189
|
-
"Bash(aws configure
|
|
190
|
-
"Bash(aws
|
|
191
|
-
"Bash(aws
|
|
192
|
-
"Bash(aws
|
|
193
|
-
"Bash(aws
|
|
194
|
-
"Bash(aws
|
|
195
|
-
"Bash(aws
|
|
196
|
-
"Bash(aws
|
|
197
|
-
"Bash(aws
|
|
198
|
-
"Bash(aws
|
|
199
|
-
"Bash(aws
|
|
200
|
-
"Bash(aws
|
|
201
|
-
"Bash(aws
|
|
202
|
-
"Bash(aws
|
|
203
|
-
"Bash(aws
|
|
204
|
-
"Bash(aws
|
|
205
|
-
"Bash(aws
|
|
206
|
-
"Bash(aws
|
|
207
|
-
"Bash(aws
|
|
208
|
-
"Bash(aws
|
|
209
|
-
"Bash(aws
|
|
210
|
-
"Bash(aws cloudformation list-:*)",
|
|
211
|
-
"Bash(aws elbv2 describe-:*)",
|
|
212
|
-
"Bash(aws elb describe-:*)",
|
|
213
|
-
"Bash(aws route53 get-:*)",
|
|
214
|
-
"Bash(aws route53 list-:*)",
|
|
215
|
-
"Bash(aws secretsmanager get-:*)",
|
|
216
|
-
"Bash(aws secretsmanager list-:*)",
|
|
217
|
-
"Bash(aws secretsmanager describe-:*)",
|
|
218
|
-
"Bash(aws ssm get-:*)",
|
|
219
|
-
"Bash(aws ssm list-:*)",
|
|
220
|
-
"Bash(aws ssm describe-:*)",
|
|
221
|
-
"Bash(aws sns get-:*)",
|
|
222
|
-
"Bash(aws sns list-:*)",
|
|
223
|
-
"Bash(aws sqs get-:*)",
|
|
224
|
-
"Bash(aws sqs list-:*)",
|
|
225
|
-
"Bash(aws dynamodb describe-:*)",
|
|
226
|
-
"Bash(aws dynamodb list-:*)",
|
|
227
|
-
"Bash(aws dynamodb get-:*)",
|
|
228
|
-
"Bash(aws dynamodb scan:*)",
|
|
229
|
-
"Bash(aws dynamodb query:*)",
|
|
230
|
-
"Bash(aws ecr describe-:*)",
|
|
231
|
-
"Bash(aws ecr get-:*)",
|
|
232
|
-
"Bash(aws ecr list-:*)",
|
|
233
|
-
"Bash(aws eks describe-:*)",
|
|
234
|
-
"Bash(aws eks list-:*)",
|
|
235
|
-
"Bash(aws elasticache describe-:*)",
|
|
188
|
+
"Bash(aws sts :*)",
|
|
189
|
+
"Bash(aws configure :*)",
|
|
190
|
+
"Bash(aws ec2 :*)",
|
|
191
|
+
"Bash(aws s3 :*)",
|
|
192
|
+
"Bash(aws s3api :*)",
|
|
193
|
+
"Bash(aws rds :*)",
|
|
194
|
+
"Bash(aws iam :*)",
|
|
195
|
+
"Bash(aws lambda :*)",
|
|
196
|
+
"Bash(aws logs :*)",
|
|
197
|
+
"Bash(aws cloudwatch :*)",
|
|
198
|
+
"Bash(aws cloudformation :*)",
|
|
199
|
+
"Bash(aws elbv2 :*)",
|
|
200
|
+
"Bash(aws elb :*)",
|
|
201
|
+
"Bash(aws route53 :*)",
|
|
202
|
+
"Bash(aws secretsmanager :*)",
|
|
203
|
+
"Bash(aws ssm :*)",
|
|
204
|
+
"Bash(aws sns :*)",
|
|
205
|
+
"Bash(aws sqs :*)",
|
|
206
|
+
"Bash(aws dynamodb :*)",
|
|
207
|
+
"Bash(aws ecr :*)",
|
|
208
|
+
"Bash(aws eks :*)",
|
|
209
|
+
"Bash(aws elasticache :*)",
|
|
236
210
|
|
|
237
|
-
"Bash(gcloud version:*)",
|
|
238
|
-
"Bash(gcloud info:*)",
|
|
239
|
-
"Bash(gcloud auth:*)",
|
|
240
|
-
"Bash(gcloud config:*)",
|
|
241
|
-
"Bash(gcloud projects
|
|
242
|
-
"Bash(gcloud
|
|
243
|
-
"Bash(gcloud
|
|
244
|
-
"Bash(gcloud
|
|
245
|
-
"Bash(gcloud
|
|
246
|
-
"Bash(gcloud
|
|
247
|
-
"Bash(gcloud
|
|
248
|
-
"Bash(gcloud
|
|
249
|
-
"Bash(gcloud
|
|
250
|
-
"Bash(
|
|
251
|
-
"Bash(
|
|
252
|
-
"Bash(
|
|
253
|
-
"Bash(
|
|
254
|
-
"Bash(gcloud compute disks describe:*)",
|
|
255
|
-
"Bash(gcloud compute images list:*)",
|
|
256
|
-
"Bash(gcloud compute images describe:*)",
|
|
257
|
-
"Bash(gcloud compute zones list:*)",
|
|
258
|
-
"Bash(gcloud compute regions list:*)",
|
|
259
|
-
"Bash(gcloud container clusters list:*)",
|
|
260
|
-
"Bash(gcloud container clusters describe:*)",
|
|
261
|
-
"Bash(gcloud container clusters get-credentials:*)",
|
|
262
|
-
"Bash(gcloud container node-pools list:*)",
|
|
263
|
-
"Bash(gcloud container node-pools describe:*)",
|
|
264
|
-
"Bash(gcloud sql instances list:*)",
|
|
265
|
-
"Bash(gcloud sql instances describe:*)",
|
|
266
|
-
"Bash(gcloud sql databases list:*)",
|
|
267
|
-
"Bash(gcloud sql users list:*)",
|
|
268
|
-
"Bash(gcloud redis instances list:*)",
|
|
269
|
-
"Bash(gcloud redis instances describe:*)",
|
|
270
|
-
"Bash(gcloud iam service-accounts list:*)",
|
|
271
|
-
"Bash(gcloud iam service-accounts describe:*)",
|
|
272
|
-
"Bash(gcloud iam service-accounts get-iam-policy:*)",
|
|
273
|
-
"Bash(gcloud iam roles list:*)",
|
|
274
|
-
"Bash(gcloud iam roles describe:*)",
|
|
275
|
-
"Bash(gcloud logging read:*)",
|
|
276
|
-
"Bash(gcloud logging logs list:*)",
|
|
277
|
-
"Bash(gcloud services list:*)",
|
|
278
|
-
"Bash(gcloud artifacts repositories list:*)",
|
|
279
|
-
"Bash(gcloud artifacts docker images list:*)",
|
|
280
|
-
"Bash(gsutil ls:*)",
|
|
281
|
-
"Bash(gsutil cat:*)",
|
|
282
|
-
"Bash(gsutil stat:*)",
|
|
283
|
-
"Bash(gsutil du:*)",
|
|
211
|
+
"Bash(gcloud version :*)",
|
|
212
|
+
"Bash(gcloud info :*)",
|
|
213
|
+
"Bash(gcloud auth :*)",
|
|
214
|
+
"Bash(gcloud config :*)",
|
|
215
|
+
"Bash(gcloud projects :*)",
|
|
216
|
+
"Bash(gcloud compute :*)",
|
|
217
|
+
"Bash(gcloud container :*)",
|
|
218
|
+
"Bash(gcloud sql :*)",
|
|
219
|
+
"Bash(gcloud redis :*)",
|
|
220
|
+
"Bash(gcloud iam :*)",
|
|
221
|
+
"Bash(gcloud logging :*)",
|
|
222
|
+
"Bash(gcloud services :*)",
|
|
223
|
+
"Bash(gcloud artifacts :*)",
|
|
224
|
+
"Bash(gsutil ls :*)",
|
|
225
|
+
"Bash(gsutil cat :*)",
|
|
226
|
+
"Bash(gsutil stat :*)",
|
|
227
|
+
"Bash(gsutil du :*)",
|
|
284
228
|
|
|
285
229
|
"Bash(kubectl get:*)",
|
|
286
230
|
"Bash(kubectl describe:*)",
|
|
@@ -282,16 +282,16 @@ def get_test_cases() -> List[TestCase]:
|
|
|
282
282
|
TestCase("mkdir new-directory", PermissionResult.ASK, "Create directory", "file"),
|
|
283
283
|
TestCase("chmod 755 script.sh", PermissionResult.ASK, "Change permissions", "file"),
|
|
284
284
|
|
|
285
|
-
# AWS modifying
|
|
286
|
-
TestCase("aws s3 cp file.txt s3://bucket/", PermissionResult.
|
|
287
|
-
TestCase("aws ec2 start-instances --instance-ids i-123", PermissionResult.
|
|
288
|
-
TestCase("aws ec2 stop-instances --instance-ids i-123", PermissionResult.
|
|
289
|
-
TestCase("aws lambda update-function-code --function-name fn", PermissionResult.
|
|
290
|
-
|
|
291
|
-
# GCP modifying
|
|
292
|
-
TestCase("gcloud compute instances start my-vm", PermissionResult.
|
|
293
|
-
TestCase("gcloud compute instances stop my-vm", PermissionResult.
|
|
294
|
-
TestCase("gcloud container clusters resize my-cluster", PermissionResult.
|
|
285
|
+
# AWS modifying (ALLOW with service-level wildcards - Option A1)
|
|
286
|
+
TestCase("aws s3 cp file.txt s3://bucket/", PermissionResult.ALLOW, "Upload to S3", "aws"),
|
|
287
|
+
TestCase("aws ec2 start-instances --instance-ids i-123", PermissionResult.ALLOW, "Start EC2", "aws"),
|
|
288
|
+
TestCase("aws ec2 stop-instances --instance-ids i-123", PermissionResult.ALLOW, "Stop EC2", "aws"),
|
|
289
|
+
TestCase("aws lambda update-function-code --function-name fn", PermissionResult.ALLOW, "Update Lambda", "aws"),
|
|
290
|
+
|
|
291
|
+
# GCP modifying (ALLOW with service-level wildcards - Option A1)
|
|
292
|
+
TestCase("gcloud compute instances start my-vm", PermissionResult.ALLOW, "Start GCE instance", "gcp"),
|
|
293
|
+
TestCase("gcloud compute instances stop my-vm", PermissionResult.ALLOW, "Stop GCE instance", "gcp"),
|
|
294
|
+
TestCase("gcloud container clusters resize my-cluster", PermissionResult.ALLOW, "Resize GKE", "gcp"),
|
|
295
295
|
|
|
296
296
|
# Docker modifying
|
|
297
297
|
TestCase("docker build -t my-image .", PermissionResult.ASK, "Build image", "docker"),
|
|
File without changes
|
|
File without changes
|