notoken-core 1.0.0

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.
Files changed (118) hide show
  1. package/config/file-hints.json +255 -0
  2. package/config/hosts.json +14 -0
  3. package/config/intents.json +3920 -0
  4. package/config/playbooks.json +112 -0
  5. package/config/rules.json +100 -0
  6. package/dist/agents/agentSpawner.d.ts +56 -0
  7. package/dist/agents/agentSpawner.js +180 -0
  8. package/dist/agents/planner.d.ts +40 -0
  9. package/dist/agents/planner.js +175 -0
  10. package/dist/agents/playbookRunner.d.ts +45 -0
  11. package/dist/agents/playbookRunner.js +120 -0
  12. package/dist/agents/taskRunner.d.ts +61 -0
  13. package/dist/agents/taskRunner.js +142 -0
  14. package/dist/context/history.d.ts +36 -0
  15. package/dist/context/history.js +115 -0
  16. package/dist/conversation/coreference.d.ts +27 -0
  17. package/dist/conversation/coreference.js +147 -0
  18. package/dist/conversation/secrets.d.ts +43 -0
  19. package/dist/conversation/secrets.js +129 -0
  20. package/dist/conversation/store.d.ts +94 -0
  21. package/dist/conversation/store.js +184 -0
  22. package/dist/execution/git.d.ts +11 -0
  23. package/dist/execution/git.js +146 -0
  24. package/dist/execution/ssh.d.ts +2 -0
  25. package/dist/execution/ssh.js +17 -0
  26. package/dist/handlers/executor.d.ts +8 -0
  27. package/dist/handlers/executor.js +216 -0
  28. package/dist/healing/claudeHealer.d.ts +17 -0
  29. package/dist/healing/claudeHealer.js +300 -0
  30. package/dist/healing/patchPromoter.d.ts +25 -0
  31. package/dist/healing/patchPromoter.js +118 -0
  32. package/dist/healing/ruleBuilder.d.ts +5 -0
  33. package/dist/healing/ruleBuilder.js +111 -0
  34. package/dist/healing/ruleRepairer.d.ts +8 -0
  35. package/dist/healing/ruleRepairer.js +29 -0
  36. package/dist/healing/ruleValidator.d.ts +22 -0
  37. package/dist/healing/ruleValidator.js +145 -0
  38. package/dist/healing/runHealer.d.ts +11 -0
  39. package/dist/healing/runHealer.js +74 -0
  40. package/dist/index.d.ts +51 -0
  41. package/dist/index.js +62 -0
  42. package/dist/intents/catalog.d.ts +4 -0
  43. package/dist/intents/catalog.js +7 -0
  44. package/dist/nlp/disambiguate.d.ts +2 -0
  45. package/dist/nlp/disambiguate.js +46 -0
  46. package/dist/nlp/fuzzyResolver.d.ts +14 -0
  47. package/dist/nlp/fuzzyResolver.js +108 -0
  48. package/dist/nlp/llmFallback.d.ts +63 -0
  49. package/dist/nlp/llmFallback.js +338 -0
  50. package/dist/nlp/llmParser.d.ts +8 -0
  51. package/dist/nlp/llmParser.js +118 -0
  52. package/dist/nlp/multiClassifier.d.ts +39 -0
  53. package/dist/nlp/multiClassifier.js +181 -0
  54. package/dist/nlp/parseIntent.d.ts +2 -0
  55. package/dist/nlp/parseIntent.js +34 -0
  56. package/dist/nlp/ruleParser.d.ts +2 -0
  57. package/dist/nlp/ruleParser.js +234 -0
  58. package/dist/nlp/semantic.d.ts +104 -0
  59. package/dist/nlp/semantic.js +419 -0
  60. package/dist/nlp/uncertainty.d.ts +42 -0
  61. package/dist/nlp/uncertainty.js +103 -0
  62. package/dist/parsers/apacheParser.d.ts +50 -0
  63. package/dist/parsers/apacheParser.js +152 -0
  64. package/dist/parsers/bindParser.d.ts +40 -0
  65. package/dist/parsers/bindParser.js +189 -0
  66. package/dist/parsers/envFile.d.ts +39 -0
  67. package/dist/parsers/envFile.js +128 -0
  68. package/dist/parsers/fileFinder.d.ts +30 -0
  69. package/dist/parsers/fileFinder.js +226 -0
  70. package/dist/parsers/index.d.ts +27 -0
  71. package/dist/parsers/index.js +193 -0
  72. package/dist/parsers/jsonParser.d.ts +16 -0
  73. package/dist/parsers/jsonParser.js +57 -0
  74. package/dist/parsers/nginxParser.d.ts +47 -0
  75. package/dist/parsers/nginxParser.js +161 -0
  76. package/dist/parsers/passwd.d.ts +25 -0
  77. package/dist/parsers/passwd.js +41 -0
  78. package/dist/parsers/shadow.d.ts +23 -0
  79. package/dist/parsers/shadow.js +50 -0
  80. package/dist/parsers/yamlParser.d.ts +13 -0
  81. package/dist/parsers/yamlParser.js +54 -0
  82. package/dist/policy/confirm.d.ts +2 -0
  83. package/dist/policy/confirm.js +29 -0
  84. package/dist/policy/safety.d.ts +4 -0
  85. package/dist/policy/safety.js +32 -0
  86. package/dist/types/intent.d.ts +205 -0
  87. package/dist/types/intent.js +32 -0
  88. package/dist/types/rules.d.ts +237 -0
  89. package/dist/types/rules.js +50 -0
  90. package/dist/utils/analysis.d.ts +25 -0
  91. package/dist/utils/analysis.js +307 -0
  92. package/dist/utils/autoBackup.d.ts +43 -0
  93. package/dist/utils/autoBackup.js +144 -0
  94. package/dist/utils/config.d.ts +11 -0
  95. package/dist/utils/config.js +32 -0
  96. package/dist/utils/dirAnalysis.d.ts +23 -0
  97. package/dist/utils/dirAnalysis.js +192 -0
  98. package/dist/utils/explain.d.ts +8 -0
  99. package/dist/utils/explain.js +145 -0
  100. package/dist/utils/logger.d.ts +5 -0
  101. package/dist/utils/logger.js +29 -0
  102. package/dist/utils/output.d.ts +2 -0
  103. package/dist/utils/output.js +26 -0
  104. package/dist/utils/paths.d.ts +26 -0
  105. package/dist/utils/paths.js +47 -0
  106. package/dist/utils/permissions.d.ts +64 -0
  107. package/dist/utils/permissions.js +298 -0
  108. package/dist/utils/platform.d.ts +53 -0
  109. package/dist/utils/platform.js +253 -0
  110. package/dist/utils/smartFile.d.ts +29 -0
  111. package/dist/utils/smartFile.js +188 -0
  112. package/dist/utils/spinner.d.ts +53 -0
  113. package/dist/utils/spinner.js +140 -0
  114. package/dist/utils/verbose.d.ts +27 -0
  115. package/dist/utils/verbose.js +131 -0
  116. package/dist/utils/wslPaths.d.ts +31 -0
  117. package/dist/utils/wslPaths.js +145 -0
  118. package/package.json +39 -0
@@ -0,0 +1,3920 @@
1
+ {
2
+ "intents": [
3
+ {
4
+ "name": "service.restart",
5
+ "description": "Restart a service in an environment",
6
+ "synonyms": [
7
+ "restart",
8
+ "bounce",
9
+ "reload",
10
+ "recycle",
11
+ "kick"
12
+ ],
13
+ "fields": {
14
+ "service": {
15
+ "type": "service",
16
+ "required": true
17
+ },
18
+ "environment": {
19
+ "type": "environment",
20
+ "required": true,
21
+ "default": "dev"
22
+ }
23
+ },
24
+ "command": "sudo systemctl restart {{service}} && sudo systemctl status {{service}} --no-pager",
25
+ "execution": "remote",
26
+ "requiresConfirmation": true,
27
+ "riskLevel": "high",
28
+ "allowlist": [
29
+ "nginx",
30
+ "redis",
31
+ "api",
32
+ "worker",
33
+ "postgres"
34
+ ],
35
+ "examples": [
36
+ "restart nginx on prod",
37
+ "bounce redis in production",
38
+ "restart api service in staging"
39
+ ]
40
+ },
41
+ {
42
+ "name": "service.status",
43
+ "description": "Check the status of a service",
44
+ "synonyms": [
45
+ "status",
46
+ "check service",
47
+ "is running",
48
+ "service health"
49
+ ],
50
+ "fields": {
51
+ "service": {
52
+ "type": "service",
53
+ "required": true
54
+ },
55
+ "environment": {
56
+ "type": "environment",
57
+ "required": false,
58
+ "default": "dev"
59
+ }
60
+ },
61
+ "command": "sudo systemctl status {{service}} --no-pager",
62
+ "execution": "remote",
63
+ "requiresConfirmation": false,
64
+ "riskLevel": "low",
65
+ "allowlist": [
66
+ "nginx",
67
+ "redis",
68
+ "api",
69
+ "worker",
70
+ "postgres"
71
+ ],
72
+ "examples": [
73
+ "status of nginx on prod",
74
+ "is redis running on staging",
75
+ "check api service health"
76
+ ]
77
+ },
78
+ {
79
+ "name": "server.check_disk",
80
+ "description": "Check disk usage on a target server or specific path",
81
+ "synonyms": [
82
+ "disk",
83
+ "disk usage",
84
+ "space",
85
+ "storage",
86
+ "df",
87
+ "check disk",
88
+ "disk space",
89
+ "how much space",
90
+ "free space",
91
+ "space on",
92
+ "check space"
93
+ ],
94
+ "fields": {
95
+ "target": {
96
+ "type": "string",
97
+ "required": false
98
+ },
99
+ "environment": {
100
+ "type": "environment",
101
+ "required": false,
102
+ "default": "dev"
103
+ }
104
+ },
105
+ "command": "df -h && echo '\\nTop directories:\\n' && du -sh /var/* 2>/dev/null | sort -rh | head -10",
106
+ "execution": "remote",
107
+ "requiresConfirmation": false,
108
+ "riskLevel": "low",
109
+ "examples": [
110
+ "check disk usage on prod",
111
+ "show disk space on api server",
112
+ "how much space on my documents",
113
+ "check space on c drive",
114
+ "disk space on /home",
115
+ "free space on downloads",
116
+ "what is eating space on staging"
117
+ ]
118
+ },
119
+ {
120
+ "name": "server.check_memory",
121
+ "description": "Check memory usage on a target server",
122
+ "synonyms": [
123
+ "memory",
124
+ "ram",
125
+ "mem",
126
+ "free",
127
+ "htop",
128
+ "memory usage",
129
+ "memory free"
130
+ ],
131
+ "fields": {
132
+ "target": {
133
+ "type": "service",
134
+ "required": false
135
+ },
136
+ "environment": {
137
+ "type": "environment",
138
+ "required": false,
139
+ "default": "dev"
140
+ }
141
+ },
142
+ "command": "free -h && echo '\\nTop 15 processes by memory:\\n' && ps aux --sort=-%mem | head -16 | awk '{printf \"%-10s %-8s %-6s %-6s %s\\n\", $1, $2, $4\"%\", $6/1024\"MB\", $11}'",
143
+ "execution": "remote",
144
+ "requiresConfirmation": false,
145
+ "riskLevel": "low",
146
+ "examples": [
147
+ "check memory on prod",
148
+ "how much ram is used on staging",
149
+ "show memory usage"
150
+ ]
151
+ },
152
+ {
153
+ "name": "server.uptime",
154
+ "description": "Check server uptime and load",
155
+ "synonyms": [
156
+ "uptime",
157
+ "load",
158
+ "load average",
159
+ "check load",
160
+ "server load",
161
+ "server seems sluggish",
162
+ "server seems slow",
163
+ "figure out why"
164
+ ],
165
+ "fields": {
166
+ "environment": {
167
+ "type": "environment",
168
+ "required": false,
169
+ "default": "dev"
170
+ }
171
+ },
172
+ "command": "uptime && echo '' && nproc && echo '' && cat /proc/loadavg && echo '' && ps aux --sort=-%cpu | head -6",
173
+ "execution": "remote",
174
+ "requiresConfirmation": false,
175
+ "riskLevel": "low",
176
+ "examples": [
177
+ "uptime on prod",
178
+ "show load average on staging",
179
+ "how long has prod been up"
180
+ ]
181
+ },
182
+ {
183
+ "name": "logs.find",
184
+ "description": "Find and list log files on the system, optionally for a specific service",
185
+ "synonyms": [
186
+ "find logs",
187
+ "find log files",
188
+ "list log files",
189
+ "where are the logs",
190
+ "log files",
191
+ "show log files",
192
+ "what logs"
193
+ ],
194
+ "fields": {
195
+ "service": {
196
+ "type": "service",
197
+ "required": false
198
+ },
199
+ "environment": {
200
+ "type": "environment",
201
+ "required": false,
202
+ "default": "dev"
203
+ }
204
+ },
205
+ "command": "echo '=== /var/log ===' && ls -lhS /var/log/*.log /var/log/*/*.log 2>/dev/null | head -20 && echo '' && echo '=== Large logs (>50MB) ===' && find /var/log -type f -size +50M -exec ls -lh {} \\; 2>/dev/null && echo '' && echo '=== Recently modified ===' && find /var/log -type f -mmin -60 -name '*.log' 2>/dev/null | head -10",
206
+ "execution": "remote",
207
+ "requiresConfirmation": false,
208
+ "riskLevel": "low",
209
+ "examples": [
210
+ "find log files on prod",
211
+ "where are the logs on staging",
212
+ "list log files on prod",
213
+ "what logs are on the server",
214
+ "find logs for nginx on prod"
215
+ ]
216
+ },
217
+ {
218
+ "name": "logs.errors",
219
+ "description": "Search for errors across common log files",
220
+ "synonyms": [
221
+ "check logs for errors",
222
+ "error logs",
223
+ "show errors",
224
+ "recent errors",
225
+ "any errors",
226
+ "check for errors"
227
+ ],
228
+ "fields": {
229
+ "service": {
230
+ "type": "service",
231
+ "required": false
232
+ },
233
+ "environment": {
234
+ "type": "environment",
235
+ "required": false,
236
+ "default": "dev"
237
+ }
238
+ },
239
+ "command": "echo '=== Syslog errors ===' && grep -i 'error\\|fail\\|critical' /var/log/syslog 2>/dev/null | tail -10 || grep -i 'error\\|fail\\|critical' /var/log/messages 2>/dev/null | tail -10 && echo '' && echo '=== Auth errors ===' && grep -i 'error\\|fail' /var/log/auth.log 2>/dev/null | tail -5 || grep -i 'error\\|fail' /var/log/secure 2>/dev/null | tail -5 && echo '' && echo '=== Nginx errors ===' && tail -10 /var/log/nginx/error.log 2>/dev/null || echo 'No nginx error log' && echo '' && echo '=== Kernel errors ===' && dmesg --level=err,crit,alert,emerg 2>/dev/null | tail -5",
240
+ "execution": "remote",
241
+ "requiresConfirmation": false,
242
+ "riskLevel": "low",
243
+ "examples": [
244
+ "check logs for errors on prod",
245
+ "any errors on staging",
246
+ "show recent errors on prod",
247
+ "error logs on staging"
248
+ ]
249
+ },
250
+ {
251
+ "name": "logs.check",
252
+ "description": "Check a specific log file — shows recent entries, size, and rotation status",
253
+ "synonyms": [
254
+ "check log",
255
+ "check log file",
256
+ "check the log",
257
+ "look at log"
258
+ ],
259
+ "fields": {
260
+ "path": {
261
+ "type": "string",
262
+ "required": true
263
+ },
264
+ "lines": {
265
+ "type": "number",
266
+ "required": false,
267
+ "default": 30
268
+ },
269
+ "environment": {
270
+ "type": "environment",
271
+ "required": false,
272
+ "default": "dev"
273
+ }
274
+ },
275
+ "command": "echo '=== File info ===' && ls -lh {{path}} && echo '' && echo '=== Last {{lines}} lines ===' && tail -{{lines}} {{path}} && echo '' && echo '=== Rotation ===' && ls -lh {{path}}* 2>/dev/null | head -5",
276
+ "execution": "remote",
277
+ "requiresConfirmation": false,
278
+ "riskLevel": "low",
279
+ "examples": [
280
+ "check /var/log/syslog on prod",
281
+ "check the nginx error log on staging",
282
+ "look at /var/log/auth.log on prod"
283
+ ]
284
+ },
285
+ {
286
+ "name": "logs.tail",
287
+ "description": "Tail logs for a service",
288
+ "synonyms": [
289
+ "tail",
290
+ "logs",
291
+ "log",
292
+ "watch logs",
293
+ "show logs"
294
+ ],
295
+ "fields": {
296
+ "service": {
297
+ "type": "service",
298
+ "required": false,
299
+ "default": "api"
300
+ },
301
+ "lines": {
302
+ "type": "number",
303
+ "required": false,
304
+ "default": 100
305
+ },
306
+ "environment": {
307
+ "type": "environment",
308
+ "required": false,
309
+ "default": "dev"
310
+ }
311
+ },
312
+ "command": "tail -n {{lines}} {{logPath}}",
313
+ "execution": "remote",
314
+ "requiresConfirmation": false,
315
+ "riskLevel": "low",
316
+ "logPaths": {
317
+ "nginx": "/var/log/nginx/error.log",
318
+ "api": "/var/log/api/app.log",
319
+ "redis": "/var/log/redis/redis-server.log",
320
+ "worker": "/var/log/worker/worker.log",
321
+ "postgres": "/var/log/postgresql/postgresql.log"
322
+ },
323
+ "examples": [
324
+ "tail nginx logs on prod",
325
+ "show me the last 100 lines for api logs",
326
+ "watch redis logs in staging"
327
+ ]
328
+ },
329
+ {
330
+ "name": "logs.search",
331
+ "description": "Search logs for a pattern",
332
+ "synonyms": [
333
+ "search logs",
334
+ "grep",
335
+ "find in logs",
336
+ "search for"
337
+ ],
338
+ "fields": {
339
+ "service": {
340
+ "type": "service",
341
+ "required": false,
342
+ "default": "api"
343
+ },
344
+ "query": {
345
+ "type": "string",
346
+ "required": false,
347
+ "default": "error"
348
+ },
349
+ "environment": {
350
+ "type": "environment",
351
+ "required": false,
352
+ "default": "dev"
353
+ }
354
+ },
355
+ "command": "grep -i '{{query}}' {{logPath}} | tail -50",
356
+ "execution": "remote",
357
+ "requiresConfirmation": false,
358
+ "riskLevel": "low",
359
+ "logPaths": {
360
+ "nginx": "/var/log/nginx/error.log",
361
+ "api": "/var/log/api/app.log",
362
+ "redis": "/var/log/redis/redis-server.log",
363
+ "worker": "/var/log/worker/worker.log",
364
+ "postgres": "/var/log/postgresql/postgresql.log"
365
+ },
366
+ "examples": [
367
+ "search for errors in api logs",
368
+ "find timeout in nginx logs on prod",
369
+ "grep 500 in api logs"
370
+ ]
371
+ },
372
+ {
373
+ "name": "deploy.run",
374
+ "description": "Run a deployment",
375
+ "synonyms": [
376
+ "deploy",
377
+ "release",
378
+ "ship",
379
+ "push",
380
+ "promote"
381
+ ],
382
+ "fields": {
383
+ "app": {
384
+ "type": "string",
385
+ "required": false
386
+ },
387
+ "branch": {
388
+ "type": "branch",
389
+ "required": false,
390
+ "default": "main"
391
+ },
392
+ "environment": {
393
+ "type": "environment",
394
+ "required": true,
395
+ "default": "staging"
396
+ }
397
+ },
398
+ "command": "cd /srv/myapp && git fetch origin && git checkout {{branch}} && git pull origin {{branch}} && ./deploy.sh",
399
+ "execution": "remote",
400
+ "requiresConfirmation": true,
401
+ "riskLevel": "high",
402
+ "examples": [
403
+ "deploy latest to staging",
404
+ "deploy main to prod",
405
+ "push release branch to production"
406
+ ]
407
+ },
408
+ {
409
+ "name": "deploy.rollback",
410
+ "description": "Rollback a deployment",
411
+ "synonyms": [
412
+ "rollback",
413
+ "revert",
414
+ "undo deploy",
415
+ "roll back",
416
+ "revert deploy",
417
+ "revert last deploy"
418
+ ],
419
+ "fields": {
420
+ "app": {
421
+ "type": "string",
422
+ "required": false
423
+ },
424
+ "environment": {
425
+ "type": "environment",
426
+ "required": true,
427
+ "default": "staging"
428
+ }
429
+ },
430
+ "command": "cd /srv/myapp && ./rollback.sh",
431
+ "execution": "remote",
432
+ "requiresConfirmation": true,
433
+ "riskLevel": "high",
434
+ "examples": [
435
+ "rollback deploy on prod",
436
+ "revert last deploy in staging",
437
+ "undo production deploy"
438
+ ]
439
+ },
440
+ {
441
+ "name": "docker.list",
442
+ "description": "List running Docker containers",
443
+ "synonyms": [
444
+ "docker ps",
445
+ "containers",
446
+ "list containers",
447
+ "show containers",
448
+ "docker list"
449
+ ],
450
+ "fields": {
451
+ "environment": {
452
+ "type": "environment",
453
+ "required": false,
454
+ "default": "dev"
455
+ }
456
+ },
457
+ "command": "docker ps --format 'table {{.Names}}\\t{{.Status}}\\t{{.Ports}}'",
458
+ "execution": "remote",
459
+ "requiresConfirmation": false,
460
+ "riskLevel": "low",
461
+ "examples": [
462
+ "show docker containers on prod",
463
+ "list containers in staging",
464
+ "what is running in docker"
465
+ ]
466
+ },
467
+ {
468
+ "name": "docker.restart",
469
+ "description": "Restart a Docker container",
470
+ "synonyms": [
471
+ "restart container",
472
+ "docker restart",
473
+ "bounce container"
474
+ ],
475
+ "fields": {
476
+ "container": {
477
+ "type": "service",
478
+ "required": true
479
+ },
480
+ "environment": {
481
+ "type": "environment",
482
+ "required": false,
483
+ "default": "dev"
484
+ }
485
+ },
486
+ "command": "docker restart {{container}} && docker ps -f name={{container}}",
487
+ "execution": "remote",
488
+ "requiresConfirmation": true,
489
+ "riskLevel": "medium",
490
+ "allowlist": [
491
+ "nginx",
492
+ "redis",
493
+ "api",
494
+ "worker",
495
+ "postgres"
496
+ ],
497
+ "examples": [
498
+ "restart docker container api on prod",
499
+ "bounce the redis container in staging"
500
+ ]
501
+ },
502
+ {
503
+ "name": "docker.stop",
504
+ "description": "Stop a running Docker container",
505
+ "synonyms": [
506
+ "docker stop",
507
+ "stop container",
508
+ "stop docker"
509
+ ],
510
+ "fields": {
511
+ "container": {
512
+ "type": "string",
513
+ "required": true
514
+ },
515
+ "environment": {
516
+ "type": "environment",
517
+ "required": false,
518
+ "default": "dev"
519
+ }
520
+ },
521
+ "command": "docker stop {{container}} && echo 'Stopped: {{container}}'",
522
+ "execution": "remote",
523
+ "requiresConfirmation": true,
524
+ "riskLevel": "medium",
525
+ "examples": [
526
+ "stop container api on prod",
527
+ "docker stop redis on staging"
528
+ ]
529
+ },
530
+ {
531
+ "name": "docker.start",
532
+ "description": "Start a stopped Docker container",
533
+ "synonyms": [
534
+ "docker start",
535
+ "start container"
536
+ ],
537
+ "fields": {
538
+ "container": {
539
+ "type": "string",
540
+ "required": true
541
+ },
542
+ "environment": {
543
+ "type": "environment",
544
+ "required": false,
545
+ "default": "dev"
546
+ }
547
+ },
548
+ "command": "docker start {{container}} && docker ps -f name={{container}}",
549
+ "execution": "remote",
550
+ "requiresConfirmation": false,
551
+ "riskLevel": "low",
552
+ "examples": [
553
+ "start container api on prod",
554
+ "docker start redis on staging"
555
+ ]
556
+ },
557
+ {
558
+ "name": "docker.logs",
559
+ "description": "View logs for a Docker container",
560
+ "synonyms": [
561
+ "docker logs",
562
+ "container logs",
563
+ "show container logs"
564
+ ],
565
+ "fields": {
566
+ "container": {
567
+ "type": "string",
568
+ "required": true
569
+ },
570
+ "lines": {
571
+ "type": "number",
572
+ "required": false,
573
+ "default": 50
574
+ },
575
+ "environment": {
576
+ "type": "environment",
577
+ "required": false,
578
+ "default": "dev"
579
+ }
580
+ },
581
+ "command": "docker logs --tail {{lines}} {{container}}",
582
+ "execution": "remote",
583
+ "requiresConfirmation": false,
584
+ "riskLevel": "low",
585
+ "examples": [
586
+ "docker logs api on prod",
587
+ "show container logs for redis",
588
+ "docker logs nginx 100 on staging"
589
+ ]
590
+ },
591
+ {
592
+ "name": "docker.all",
593
+ "description": "List all containers including stopped ones",
594
+ "synonyms": [
595
+ "all containers",
596
+ "docker ps -a",
597
+ "stopped containers",
598
+ "all docker",
599
+ "show all containers"
600
+ ],
601
+ "fields": {
602
+ "environment": {
603
+ "type": "environment",
604
+ "required": false,
605
+ "default": "dev"
606
+ }
607
+ },
608
+ "command": "docker ps -a --format 'table {{.Names}}\\t{{.Status}}\\t{{.Image}}\\t{{.Size}}'",
609
+ "execution": "remote",
610
+ "requiresConfirmation": false,
611
+ "riskLevel": "low",
612
+ "examples": [
613
+ "show all containers on prod",
614
+ "stopped containers on staging",
615
+ "docker ps -a"
616
+ ]
617
+ },
618
+ {
619
+ "name": "docker.images",
620
+ "description": "List Docker images",
621
+ "synonyms": [
622
+ "docker images",
623
+ "list images",
624
+ "show images",
625
+ "docker image list"
626
+ ],
627
+ "fields": {
628
+ "environment": {
629
+ "type": "environment",
630
+ "required": false,
631
+ "default": "dev"
632
+ }
633
+ },
634
+ "command": "docker images --format 'table {{.Repository}}\\t{{.Tag}}\\t{{.Size}}\\t{{.CreatedSince}}'",
635
+ "execution": "remote",
636
+ "requiresConfirmation": false,
637
+ "riskLevel": "low",
638
+ "examples": [
639
+ "docker images on prod",
640
+ "list images on staging"
641
+ ]
642
+ },
643
+ {
644
+ "name": "docker.cleanup",
645
+ "description": "Clean up unused/orphaned Docker resources — stopped containers, dangling images, unused volumes and networks",
646
+ "synonyms": [
647
+ "docker cleanup",
648
+ "docker prune",
649
+ "clean docker",
650
+ "orphaned containers",
651
+ "docker garbage",
652
+ "docker disk",
653
+ "docker space",
654
+ "unused containers",
655
+ "unused images",
656
+ "dangling images"
657
+ ],
658
+ "fields": {
659
+ "environment": {
660
+ "type": "environment",
661
+ "required": false,
662
+ "default": "dev"
663
+ }
664
+ },
665
+ "command": "echo '=== Stopped containers ===' && docker ps -a --filter status=exited --format 'table {{.Names}}\\t{{.Status}}\\t{{.Size}}' && echo '' && echo '=== Dangling images ===' && docker images -f dangling=true --format 'table {{.Repository}}\\t{{.Tag}}\\t{{.Size}}' && echo '' && echo '=== Disk usage ===' && docker system df && echo '' && echo 'Run \"docker system prune -a\" to clean up (will ask for confirmation)'",
666
+ "execution": "remote",
667
+ "requiresConfirmation": false,
668
+ "riskLevel": "low",
669
+ "examples": [
670
+ "docker cleanup on prod",
671
+ "check orphaned containers on staging",
672
+ "docker disk usage",
673
+ "unused containers on prod",
674
+ "dangling images on staging"
675
+ ]
676
+ },
677
+ {
678
+ "name": "docker.prune",
679
+ "description": "Remove all stopped containers, unused images, networks, and volumes",
680
+ "synonyms": [
681
+ "docker system prune",
682
+ "prune docker",
683
+ "remove unused docker",
684
+ "free docker space"
685
+ ],
686
+ "fields": {
687
+ "environment": {
688
+ "type": "environment",
689
+ "required": false,
690
+ "default": "dev"
691
+ }
692
+ },
693
+ "command": "docker system prune -af --volumes && echo '' && docker system df",
694
+ "execution": "remote",
695
+ "requiresConfirmation": true,
696
+ "riskLevel": "high",
697
+ "examples": [
698
+ "docker system prune on prod",
699
+ "prune docker on staging",
700
+ "free docker space on prod"
701
+ ]
702
+ },
703
+ {
704
+ "name": "docker.compose_up",
705
+ "description": "Start services with docker compose",
706
+ "synonyms": [
707
+ "docker compose up",
708
+ "compose up",
709
+ "docker-compose up",
710
+ "start compose",
711
+ "run compose"
712
+ ],
713
+ "fields": {
714
+ "path": {
715
+ "type": "string",
716
+ "required": false,
717
+ "default": "."
718
+ },
719
+ "service": {
720
+ "type": "string",
721
+ "required": false
722
+ },
723
+ "environment": {
724
+ "type": "environment",
725
+ "required": false,
726
+ "default": "dev"
727
+ }
728
+ },
729
+ "command": "docker compose -f {{path}}/docker-compose.yml up -d {{service}}",
730
+ "execution": "remote",
731
+ "requiresConfirmation": true,
732
+ "riskLevel": "medium",
733
+ "examples": [
734
+ "docker compose up on prod",
735
+ "compose up on staging",
736
+ "start compose on dev",
737
+ "docker compose up api on prod"
738
+ ]
739
+ },
740
+ {
741
+ "name": "docker.compose_down",
742
+ "description": "Stop and remove docker compose services",
743
+ "synonyms": [
744
+ "docker compose down",
745
+ "compose down",
746
+ "docker-compose down",
747
+ "stop compose",
748
+ "tear down compose"
749
+ ],
750
+ "fields": {
751
+ "path": {
752
+ "type": "string",
753
+ "required": false,
754
+ "default": "."
755
+ },
756
+ "environment": {
757
+ "type": "environment",
758
+ "required": false,
759
+ "default": "dev"
760
+ }
761
+ },
762
+ "command": "docker compose -f {{path}}/docker-compose.yml down",
763
+ "execution": "remote",
764
+ "requiresConfirmation": true,
765
+ "riskLevel": "high",
766
+ "examples": [
767
+ "docker compose down on prod",
768
+ "compose down on staging",
769
+ "stop compose on dev"
770
+ ]
771
+ },
772
+ {
773
+ "name": "docker.compose_build",
774
+ "description": "Build or rebuild docker compose services",
775
+ "synonyms": [
776
+ "docker compose build",
777
+ "compose build",
778
+ "docker-compose build",
779
+ "rebuild compose",
780
+ "rebuild containers",
781
+ "docker rebuild"
782
+ ],
783
+ "fields": {
784
+ "path": {
785
+ "type": "string",
786
+ "required": false,
787
+ "default": "."
788
+ },
789
+ "service": {
790
+ "type": "string",
791
+ "required": false
792
+ },
793
+ "environment": {
794
+ "type": "environment",
795
+ "required": false,
796
+ "default": "dev"
797
+ }
798
+ },
799
+ "command": "docker compose -f {{path}}/docker-compose.yml build --no-cache {{service}}",
800
+ "execution": "remote",
801
+ "requiresConfirmation": true,
802
+ "riskLevel": "medium",
803
+ "examples": [
804
+ "docker compose build on prod",
805
+ "rebuild compose on staging",
806
+ "rebuild containers on dev",
807
+ "docker rebuild api on prod"
808
+ ]
809
+ },
810
+ {
811
+ "name": "docker.compose_status",
812
+ "description": "Show status of docker compose services",
813
+ "synonyms": [
814
+ "docker compose status",
815
+ "compose status",
816
+ "docker compose ps",
817
+ "compose ps"
818
+ ],
819
+ "fields": {
820
+ "path": {
821
+ "type": "string",
822
+ "required": false,
823
+ "default": "."
824
+ },
825
+ "environment": {
826
+ "type": "environment",
827
+ "required": false,
828
+ "default": "dev"
829
+ }
830
+ },
831
+ "command": "docker compose -f {{path}}/docker-compose.yml ps",
832
+ "execution": "remote",
833
+ "requiresConfirmation": false,
834
+ "riskLevel": "low",
835
+ "examples": [
836
+ "docker compose status on prod",
837
+ "compose ps on staging"
838
+ ]
839
+ },
840
+ {
841
+ "name": "docker.compose_restart",
842
+ "description": "Restart docker compose services",
843
+ "synonyms": [
844
+ "docker compose restart",
845
+ "compose restart",
846
+ "restart compose"
847
+ ],
848
+ "fields": {
849
+ "path": {
850
+ "type": "string",
851
+ "required": false,
852
+ "default": "."
853
+ },
854
+ "service": {
855
+ "type": "string",
856
+ "required": false
857
+ },
858
+ "environment": {
859
+ "type": "environment",
860
+ "required": false,
861
+ "default": "dev"
862
+ }
863
+ },
864
+ "command": "docker compose -f {{path}}/docker-compose.yml restart {{service}}",
865
+ "execution": "remote",
866
+ "requiresConfirmation": true,
867
+ "riskLevel": "medium",
868
+ "examples": [
869
+ "docker compose restart on prod",
870
+ "restart compose on staging",
871
+ "compose restart api on prod"
872
+ ]
873
+ },
874
+ {
875
+ "name": "cron.list",
876
+ "description": "List cron jobs on a server",
877
+ "synonyms": [
878
+ "cron",
879
+ "crontab",
880
+ "cron jobs",
881
+ "scheduled tasks",
882
+ "list cron"
883
+ ],
884
+ "fields": {
885
+ "environment": {
886
+ "type": "environment",
887
+ "required": false,
888
+ "default": "dev"
889
+ }
890
+ },
891
+ "command": "crontab -l 2>/dev/null && echo '\\nSystem crons:\\n' && ls -la /etc/cron.d/ 2>/dev/null",
892
+ "execution": "remote",
893
+ "requiresConfirmation": false,
894
+ "riskLevel": "low",
895
+ "examples": [
896
+ "show cron jobs on prod",
897
+ "list scheduled tasks on staging",
898
+ "what crons are running"
899
+ ]
900
+ },
901
+ {
902
+ "name": "network.ports",
903
+ "description": "Show listening ports on a server",
904
+ "synonyms": [
905
+ "ports",
906
+ "listening",
907
+ "netstat",
908
+ "open ports",
909
+ "ss"
910
+ ],
911
+ "fields": {
912
+ "environment": {
913
+ "type": "environment",
914
+ "required": false,
915
+ "default": "dev"
916
+ }
917
+ },
918
+ "command": "ss -tlnp | head -30",
919
+ "execution": "remote",
920
+ "requiresConfirmation": false,
921
+ "riskLevel": "low",
922
+ "examples": [
923
+ "show open ports on prod",
924
+ "what ports are listening on staging",
925
+ "netstat on prod"
926
+ ]
927
+ },
928
+ {
929
+ "name": "network.ping",
930
+ "description": "Ping a host or check connectivity",
931
+ "synonyms": [
932
+ "ping",
933
+ "check connectivity",
934
+ "is reachable"
935
+ ],
936
+ "fields": {
937
+ "target": {
938
+ "type": "string",
939
+ "required": false
940
+ },
941
+ "environment": {
942
+ "type": "environment",
943
+ "required": false,
944
+ "default": "dev"
945
+ }
946
+ },
947
+ "command": "ping -c 4 {{target}}",
948
+ "execution": "remote",
949
+ "requiresConfirmation": false,
950
+ "riskLevel": "low",
951
+ "examples": [
952
+ "ping prod",
953
+ "check connectivity to staging"
954
+ ]
955
+ },
956
+ {
957
+ "name": "files.find",
958
+ "description": "Find files or directories by name or pattern",
959
+ "synonyms": [
960
+ "find file",
961
+ "find files",
962
+ "find log",
963
+ "locate",
964
+ "find directory",
965
+ "where is",
966
+ "search file",
967
+ "find config"
968
+ ],
969
+ "fields": {
970
+ "pattern": {
971
+ "type": "string",
972
+ "required": false,
973
+ "default": "*"
974
+ },
975
+ "path": {
976
+ "type": "string",
977
+ "required": false,
978
+ "default": "/"
979
+ },
980
+ "environment": {
981
+ "type": "environment",
982
+ "required": false,
983
+ "default": "dev"
984
+ }
985
+ },
986
+ "command": "find {{path}} -name '{{pattern}}' -maxdepth 5 2>/dev/null | head -30",
987
+ "execution": "remote",
988
+ "requiresConfirmation": false,
989
+ "riskLevel": "low",
990
+ "examples": [
991
+ "find log files on prod",
992
+ "locate nginx config on staging",
993
+ "find files named *.conf on prod"
994
+ ]
995
+ },
996
+ {
997
+ "name": "files.grep",
998
+ "description": "Search file contents for a pattern",
999
+ "synonyms": [
1000
+ "grep",
1001
+ "search for text",
1002
+ "find text",
1003
+ "search in files",
1004
+ "look for"
1005
+ ],
1006
+ "fields": {
1007
+ "query": {
1008
+ "type": "string",
1009
+ "required": true
1010
+ },
1011
+ "path": {
1012
+ "type": "string",
1013
+ "required": false,
1014
+ "default": "/var/log"
1015
+ },
1016
+ "environment": {
1017
+ "type": "environment",
1018
+ "required": false,
1019
+ "default": "dev"
1020
+ }
1021
+ },
1022
+ "command": "grep -rn '{{query}}' {{path}} 2>/dev/null | head -30",
1023
+ "execution": "remote",
1024
+ "requiresConfirmation": false,
1025
+ "riskLevel": "low",
1026
+ "examples": [
1027
+ "grep for error in /var/log on prod",
1028
+ "search for timeout in api logs on staging",
1029
+ "find text connection refused on prod"
1030
+ ]
1031
+ },
1032
+ {
1033
+ "name": "files.list",
1034
+ "description": "List files and directories",
1035
+ "synonyms": [
1036
+ "list files",
1037
+ "ls",
1038
+ "show files",
1039
+ "directory listing",
1040
+ "what files"
1041
+ ],
1042
+ "fields": {
1043
+ "path": {
1044
+ "type": "string",
1045
+ "required": false,
1046
+ "default": "/var/log"
1047
+ },
1048
+ "environment": {
1049
+ "type": "environment",
1050
+ "required": false,
1051
+ "default": "dev"
1052
+ }
1053
+ },
1054
+ "command": "ls -lah {{path}}",
1055
+ "execution": "remote",
1056
+ "requiresConfirmation": false,
1057
+ "riskLevel": "low",
1058
+ "examples": [
1059
+ "list files in /etc/nginx on prod",
1060
+ "ls /var/log on staging",
1061
+ "show files in /srv on prod"
1062
+ ]
1063
+ },
1064
+ {
1065
+ "name": "files.tail",
1066
+ "description": "Tail any file by path",
1067
+ "synonyms": [
1068
+ "tail file",
1069
+ "last lines",
1070
+ "end of file",
1071
+ "tail -f"
1072
+ ],
1073
+ "fields": {
1074
+ "path": {
1075
+ "type": "string",
1076
+ "required": true
1077
+ },
1078
+ "lines": {
1079
+ "type": "number",
1080
+ "required": false,
1081
+ "default": 50
1082
+ },
1083
+ "environment": {
1084
+ "type": "environment",
1085
+ "required": false,
1086
+ "default": "dev"
1087
+ }
1088
+ },
1089
+ "command": "tail -n {{lines}} {{path}}",
1090
+ "execution": "remote",
1091
+ "requiresConfirmation": false,
1092
+ "riskLevel": "low",
1093
+ "examples": [
1094
+ "tail /var/log/syslog on prod",
1095
+ "show last 200 lines of /tmp/output.log on staging"
1096
+ ]
1097
+ },
1098
+ {
1099
+ "name": "process.list",
1100
+ "description": "List running processes, optionally filtered",
1101
+ "synonyms": [
1102
+ "ps",
1103
+ "processes",
1104
+ "show processes",
1105
+ "what is running",
1106
+ "top processes",
1107
+ "process list"
1108
+ ],
1109
+ "fields": {
1110
+ "filter": {
1111
+ "type": "string",
1112
+ "required": false
1113
+ },
1114
+ "environment": {
1115
+ "type": "environment",
1116
+ "required": false,
1117
+ "default": "dev"
1118
+ }
1119
+ },
1120
+ "command": "ps aux --sort=-%cpu | head -20",
1121
+ "execution": "remote",
1122
+ "requiresConfirmation": false,
1123
+ "riskLevel": "low",
1124
+ "examples": [
1125
+ "show processes on prod",
1126
+ "ps on staging",
1127
+ "what is running on prod",
1128
+ "top processes on staging"
1129
+ ]
1130
+ },
1131
+ {
1132
+ "name": "process.kill",
1133
+ "description": "Kill a process by name or PID",
1134
+ "synonyms": [
1135
+ "kill process",
1136
+ "stop process",
1137
+ "kill pid",
1138
+ "terminate"
1139
+ ],
1140
+ "fields": {
1141
+ "target": {
1142
+ "type": "string",
1143
+ "required": true
1144
+ },
1145
+ "environment": {
1146
+ "type": "environment",
1147
+ "required": false,
1148
+ "default": "dev"
1149
+ }
1150
+ },
1151
+ "command": "pkill -f '{{target}}' && echo 'Killed processes matching: {{target}}'",
1152
+ "execution": "remote",
1153
+ "requiresConfirmation": true,
1154
+ "riskLevel": "high",
1155
+ "examples": [
1156
+ "kill process node on staging",
1157
+ "stop process java on dev",
1158
+ "terminate worker on prod"
1159
+ ]
1160
+ },
1161
+ {
1162
+ "name": "ssh.connect",
1163
+ "description": "Show SSH connection command for an environment",
1164
+ "synonyms": [
1165
+ "ssh",
1166
+ "connect",
1167
+ "ssh into",
1168
+ "shell into",
1169
+ "login to"
1170
+ ],
1171
+ "fields": {
1172
+ "environment": {
1173
+ "type": "environment",
1174
+ "required": true,
1175
+ "default": "dev"
1176
+ }
1177
+ },
1178
+ "command": "echo 'Connected to {{environment}}' && hostname && whoami && uptime",
1179
+ "execution": "remote",
1180
+ "requiresConfirmation": false,
1181
+ "riskLevel": "low",
1182
+ "examples": [
1183
+ "ssh into prod",
1184
+ "connect to staging",
1185
+ "login to dev"
1186
+ ]
1187
+ },
1188
+ {
1189
+ "name": "user.add",
1190
+ "description": "Create a new system user",
1191
+ "synonyms": [
1192
+ "useradd",
1193
+ "add user",
1194
+ "create user",
1195
+ "new user"
1196
+ ],
1197
+ "fields": {
1198
+ "username": {
1199
+ "type": "string",
1200
+ "required": true
1201
+ },
1202
+ "environment": {
1203
+ "type": "environment",
1204
+ "required": true,
1205
+ "default": "dev"
1206
+ }
1207
+ },
1208
+ "command": "sudo useradd -m -s /bin/bash {{username}} && echo 'User {{username}} created'",
1209
+ "execution": "remote",
1210
+ "requiresConfirmation": true,
1211
+ "riskLevel": "high",
1212
+ "examples": [
1213
+ "create user deploy on prod",
1214
+ "add user monitoring on staging",
1215
+ "useradd backup on prod"
1216
+ ]
1217
+ },
1218
+ {
1219
+ "name": "user.modify",
1220
+ "description": "Modify an existing system user",
1221
+ "synonyms": [
1222
+ "usermod",
1223
+ "modify user",
1224
+ "change user",
1225
+ "update user",
1226
+ "add to group",
1227
+ "add user to group",
1228
+ "user to group",
1229
+ "to group docker",
1230
+ "to group sudo",
1231
+ "to group www-data",
1232
+ "to group admin"
1233
+ ],
1234
+ "fields": {
1235
+ "username": {
1236
+ "type": "string",
1237
+ "required": true
1238
+ },
1239
+ "group": {
1240
+ "type": "string",
1241
+ "required": false
1242
+ },
1243
+ "environment": {
1244
+ "type": "environment",
1245
+ "required": true,
1246
+ "default": "dev"
1247
+ }
1248
+ },
1249
+ "command": "sudo usermod -aG {{group}} {{username}} && echo 'User {{username}} updated' && id {{username}}",
1250
+ "execution": "remote",
1251
+ "requiresConfirmation": true,
1252
+ "riskLevel": "high",
1253
+ "examples": [
1254
+ "add user deploy to group docker on prod",
1255
+ "modify user monitoring add to sudo on staging",
1256
+ "usermod deploy add to www-data on prod"
1257
+ ]
1258
+ },
1259
+ {
1260
+ "name": "files.copy",
1261
+ "description": "Copy a file or directory to a destination",
1262
+ "synonyms": [
1263
+ "copy file",
1264
+ "copy this",
1265
+ "cp",
1266
+ "copy to",
1267
+ "duplicate file",
1268
+ "copy over",
1269
+ "copy"
1270
+ ],
1271
+ "fields": {
1272
+ "source": {
1273
+ "type": "string",
1274
+ "required": true
1275
+ },
1276
+ "destination": {
1277
+ "type": "string",
1278
+ "required": true
1279
+ },
1280
+ "environment": {
1281
+ "type": "environment",
1282
+ "required": false,
1283
+ "default": "dev"
1284
+ }
1285
+ },
1286
+ "command": "cp -rv {{source}} {{destination}}",
1287
+ "execution": "remote",
1288
+ "requiresConfirmation": true,
1289
+ "riskLevel": "medium",
1290
+ "fuzzyResolve": [
1291
+ "source"
1292
+ ],
1293
+ "examples": [
1294
+ "copy nginx.conf to /root on prod",
1295
+ "copy the api config to /tmp on staging",
1296
+ "cp app.log to /backup on prod"
1297
+ ]
1298
+ },
1299
+ {
1300
+ "name": "files.move",
1301
+ "description": "Move or rename a file or directory",
1302
+ "synonyms": [
1303
+ "move file",
1304
+ "move this",
1305
+ "move to",
1306
+ "rename file",
1307
+ "move over",
1308
+ "move"
1309
+ ],
1310
+ "fields": {
1311
+ "source": {
1312
+ "type": "string",
1313
+ "required": true
1314
+ },
1315
+ "destination": {
1316
+ "type": "string",
1317
+ "required": true
1318
+ },
1319
+ "environment": {
1320
+ "type": "environment",
1321
+ "required": false,
1322
+ "default": "dev"
1323
+ }
1324
+ },
1325
+ "command": "mv -v {{source}} {{destination}}",
1326
+ "execution": "remote",
1327
+ "requiresConfirmation": true,
1328
+ "riskLevel": "high",
1329
+ "fuzzyResolve": [
1330
+ "source"
1331
+ ],
1332
+ "examples": [
1333
+ "move app.log to /root on prod",
1334
+ "move this config to /backup on staging",
1335
+ "rename the old log on prod"
1336
+ ]
1337
+ },
1338
+ {
1339
+ "name": "files.remove",
1340
+ "description": "Remove a file (not directories)",
1341
+ "synonyms": [
1342
+ "delete file",
1343
+ "remove file",
1344
+ "rm",
1345
+ "delete this"
1346
+ ],
1347
+ "fields": {
1348
+ "target": {
1349
+ "type": "string",
1350
+ "required": true
1351
+ },
1352
+ "environment": {
1353
+ "type": "environment",
1354
+ "required": false,
1355
+ "default": "dev"
1356
+ }
1357
+ },
1358
+ "command": "rm -v {{target}}",
1359
+ "execution": "remote",
1360
+ "requiresConfirmation": true,
1361
+ "riskLevel": "high",
1362
+ "fuzzyResolve": [
1363
+ "target"
1364
+ ],
1365
+ "examples": [
1366
+ "delete old.log on prod",
1367
+ "remove temp file on staging"
1368
+ ]
1369
+ },
1370
+ {
1371
+ "name": "user.list",
1372
+ "description": "List system users or show user info",
1373
+ "synonyms": [
1374
+ "list users",
1375
+ "show users",
1376
+ "who",
1377
+ "whoami",
1378
+ "user info",
1379
+ "id",
1380
+ "users history the one we are running as"
1381
+ ],
1382
+ "fields": {
1383
+ "username": {
1384
+ "type": "string",
1385
+ "required": false
1386
+ },
1387
+ "environment": {
1388
+ "type": "environment",
1389
+ "required": false,
1390
+ "default": "dev"
1391
+ }
1392
+ },
1393
+ "command": "cat /etc/passwd | grep -v nologin | grep -v false | cut -d: -f1,3,6",
1394
+ "execution": "remote",
1395
+ "requiresConfirmation": false,
1396
+ "riskLevel": "low",
1397
+ "examples": [
1398
+ "list users on prod",
1399
+ "show users on staging",
1400
+ "who is on prod"
1401
+ ]
1402
+ },
1403
+ {
1404
+ "name": "git.status",
1405
+ "description": "Show git working tree status",
1406
+ "synonyms": [
1407
+ "git status",
1408
+ "git state",
1409
+ "what changed",
1410
+ "uncommitted changes",
1411
+ "working tree"
1412
+ ],
1413
+ "fields": {
1414
+ "path": {
1415
+ "type": "string",
1416
+ "required": false,
1417
+ "default": "."
1418
+ }
1419
+ },
1420
+ "command": "git -C {{path}} status",
1421
+ "execution": "local",
1422
+ "requiresConfirmation": false,
1423
+ "riskLevel": "low",
1424
+ "examples": [
1425
+ "git status",
1426
+ "show git status",
1427
+ "what changed in the repo",
1428
+ "uncommitted changes"
1429
+ ]
1430
+ },
1431
+ {
1432
+ "name": "git.log",
1433
+ "description": "Show recent git commit history",
1434
+ "synonyms": [
1435
+ "git log",
1436
+ "commit history",
1437
+ "recent commits",
1438
+ "git history",
1439
+ "show commits",
1440
+ "last commits",
1441
+ "show last",
1442
+ "last 5 commits",
1443
+ "last 10 commits"
1444
+ ],
1445
+ "fields": {
1446
+ "count": {
1447
+ "type": "number",
1448
+ "required": false,
1449
+ "default": 10
1450
+ },
1451
+ "path": {
1452
+ "type": "string",
1453
+ "required": false,
1454
+ "default": "."
1455
+ }
1456
+ },
1457
+ "command": "git -C {{path}} log --oneline -n {{count}}",
1458
+ "execution": "local",
1459
+ "requiresConfirmation": false,
1460
+ "riskLevel": "low",
1461
+ "examples": [
1462
+ "git log",
1463
+ "show last 20 commits",
1464
+ "recent commit history",
1465
+ "git log 5"
1466
+ ]
1467
+ },
1468
+ {
1469
+ "name": "git.diff",
1470
+ "description": "Show git diff of current changes",
1471
+ "synonyms": [
1472
+ "git diff",
1473
+ "show diff",
1474
+ "what is different",
1475
+ "show changes"
1476
+ ],
1477
+ "fields": {
1478
+ "path": {
1479
+ "type": "string",
1480
+ "required": false,
1481
+ "default": "."
1482
+ },
1483
+ "target": {
1484
+ "type": "string",
1485
+ "required": false
1486
+ }
1487
+ },
1488
+ "command": "git -C {{path}} diff {{target}}",
1489
+ "execution": "local",
1490
+ "requiresConfirmation": false,
1491
+ "riskLevel": "low",
1492
+ "examples": [
1493
+ "git diff",
1494
+ "show diff",
1495
+ "what is different",
1496
+ "git diff main"
1497
+ ]
1498
+ },
1499
+ {
1500
+ "name": "git.pull",
1501
+ "description": "Pull latest changes from remote",
1502
+ "synonyms": [
1503
+ "git pull",
1504
+ "pull latest",
1505
+ "pull changes",
1506
+ "update repo",
1507
+ "fetch and merge"
1508
+ ],
1509
+ "fields": {
1510
+ "remote": {
1511
+ "type": "string",
1512
+ "required": false,
1513
+ "default": "origin"
1514
+ },
1515
+ "branch": {
1516
+ "type": "branch",
1517
+ "required": false
1518
+ },
1519
+ "path": {
1520
+ "type": "string",
1521
+ "required": false,
1522
+ "default": "."
1523
+ }
1524
+ },
1525
+ "command": "git -C {{path}} pull {{remote}} {{branch}}",
1526
+ "execution": "local",
1527
+ "requiresConfirmation": false,
1528
+ "riskLevel": "low",
1529
+ "examples": [
1530
+ "git pull",
1531
+ "pull latest changes",
1532
+ "update the repo",
1533
+ "git pull origin main"
1534
+ ]
1535
+ },
1536
+ {
1537
+ "name": "git.push",
1538
+ "description": "Push commits to remote",
1539
+ "synonyms": [
1540
+ "git push",
1541
+ "push commits",
1542
+ "push to remote",
1543
+ "push changes"
1544
+ ],
1545
+ "fields": {
1546
+ "remote": {
1547
+ "type": "string",
1548
+ "required": false,
1549
+ "default": "origin"
1550
+ },
1551
+ "branch": {
1552
+ "type": "branch",
1553
+ "required": false
1554
+ },
1555
+ "path": {
1556
+ "type": "string",
1557
+ "required": false,
1558
+ "default": "."
1559
+ }
1560
+ },
1561
+ "command": "git -C {{path}} push {{remote}} {{branch}}",
1562
+ "execution": "local",
1563
+ "requiresConfirmation": true,
1564
+ "riskLevel": "medium",
1565
+ "examples": [
1566
+ "git push",
1567
+ "push commits to origin",
1568
+ "push to remote",
1569
+ "git push origin main"
1570
+ ]
1571
+ },
1572
+ {
1573
+ "name": "git.branch",
1574
+ "description": "List, create, or switch git branches",
1575
+ "synonyms": [
1576
+ "git branch",
1577
+ "list branches",
1578
+ "show branches",
1579
+ "branches",
1580
+ "current branch"
1581
+ ],
1582
+ "fields": {
1583
+ "name": {
1584
+ "type": "string",
1585
+ "required": false
1586
+ },
1587
+ "path": {
1588
+ "type": "string",
1589
+ "required": false,
1590
+ "default": "."
1591
+ }
1592
+ },
1593
+ "command": "git -C {{path}} branch -a",
1594
+ "execution": "local",
1595
+ "requiresConfirmation": false,
1596
+ "riskLevel": "low",
1597
+ "examples": [
1598
+ "git branch",
1599
+ "list branches",
1600
+ "show all branches",
1601
+ "what branch am I on"
1602
+ ]
1603
+ },
1604
+ {
1605
+ "name": "git.checkout",
1606
+ "description": "Switch to a different branch",
1607
+ "synonyms": [
1608
+ "git checkout",
1609
+ "switch branch",
1610
+ "switch to",
1611
+ "checkout branch",
1612
+ "go to branch"
1613
+ ],
1614
+ "fields": {
1615
+ "branch": {
1616
+ "type": "branch",
1617
+ "required": true
1618
+ },
1619
+ "path": {
1620
+ "type": "string",
1621
+ "required": false,
1622
+ "default": "."
1623
+ }
1624
+ },
1625
+ "command": "git -C {{path}} checkout {{branch}}",
1626
+ "execution": "local",
1627
+ "requiresConfirmation": true,
1628
+ "riskLevel": "medium",
1629
+ "examples": [
1630
+ "git checkout main",
1631
+ "switch to develop",
1632
+ "checkout branch main",
1633
+ "go to branch develop"
1634
+ ]
1635
+ },
1636
+ {
1637
+ "name": "git.commit",
1638
+ "description": "Commit staged changes with a message",
1639
+ "synonyms": [
1640
+ "git commit",
1641
+ "commit changes",
1642
+ "save changes",
1643
+ "commit with message"
1644
+ ],
1645
+ "fields": {
1646
+ "message": {
1647
+ "type": "string",
1648
+ "required": true
1649
+ },
1650
+ "path": {
1651
+ "type": "string",
1652
+ "required": false,
1653
+ "default": "."
1654
+ }
1655
+ },
1656
+ "command": "git -C {{path}} commit -m '{{message}}'",
1657
+ "execution": "local",
1658
+ "requiresConfirmation": true,
1659
+ "riskLevel": "medium",
1660
+ "examples": [
1661
+ "git commit fix typo",
1662
+ "commit changes update readme",
1663
+ "commit with message initial setup"
1664
+ ]
1665
+ },
1666
+ {
1667
+ "name": "git.add",
1668
+ "description": "Stage files for commit",
1669
+ "synonyms": [
1670
+ "git add",
1671
+ "stage files",
1672
+ "stage changes",
1673
+ "add files",
1674
+ "add to staging",
1675
+ "stage all",
1676
+ "stage all files"
1677
+ ],
1678
+ "fields": {
1679
+ "target": {
1680
+ "type": "string",
1681
+ "required": false,
1682
+ "default": "."
1683
+ },
1684
+ "path": {
1685
+ "type": "string",
1686
+ "required": false,
1687
+ "default": "."
1688
+ }
1689
+ },
1690
+ "command": "git -C {{path}} add {{target}}",
1691
+ "execution": "local",
1692
+ "requiresConfirmation": false,
1693
+ "riskLevel": "low",
1694
+ "examples": [
1695
+ "git add all",
1696
+ "stage all files",
1697
+ "git add src/index.ts",
1698
+ "stage changes"
1699
+ ]
1700
+ },
1701
+ {
1702
+ "name": "git.stash",
1703
+ "description": "Stash or restore uncommitted changes",
1704
+ "synonyms": [
1705
+ "git stash",
1706
+ "stash changes",
1707
+ "save work",
1708
+ "stash it",
1709
+ "stash pop",
1710
+ "restore stash"
1711
+ ],
1712
+ "fields": {
1713
+ "action": {
1714
+ "type": "string",
1715
+ "required": false,
1716
+ "default": "push"
1717
+ },
1718
+ "path": {
1719
+ "type": "string",
1720
+ "required": false,
1721
+ "default": "."
1722
+ }
1723
+ },
1724
+ "command": "git -C {{path}} stash {{action}}",
1725
+ "execution": "local",
1726
+ "requiresConfirmation": false,
1727
+ "riskLevel": "low",
1728
+ "examples": [
1729
+ "git stash",
1730
+ "stash my changes",
1731
+ "restore stash",
1732
+ "git stash pop"
1733
+ ]
1734
+ },
1735
+ {
1736
+ "name": "git.reset",
1737
+ "description": "Reset staged changes or undo last commit",
1738
+ "synonyms": [
1739
+ "git reset",
1740
+ "unstage",
1741
+ "undo commit",
1742
+ "reset head"
1743
+ ],
1744
+ "fields": {
1745
+ "target": {
1746
+ "type": "string",
1747
+ "required": false,
1748
+ "default": "HEAD"
1749
+ },
1750
+ "path": {
1751
+ "type": "string",
1752
+ "required": false,
1753
+ "default": "."
1754
+ }
1755
+ },
1756
+ "command": "git -C {{path}} reset {{target}}",
1757
+ "execution": "local",
1758
+ "requiresConfirmation": true,
1759
+ "riskLevel": "high",
1760
+ "examples": [
1761
+ "git reset",
1762
+ "unstage all files",
1763
+ "undo last commit",
1764
+ "git reset HEAD~1"
1765
+ ]
1766
+ },
1767
+ {
1768
+ "name": "file.parse",
1769
+ "description": "Read and parse a config file (passwd, shadow, .env, yaml, json, nginx, apache)",
1770
+ "synonyms": [
1771
+ "parse file",
1772
+ "parse /",
1773
+ "read file",
1774
+ "show config",
1775
+ "open file",
1776
+ "read config",
1777
+ "parse config",
1778
+ "show file contents",
1779
+ "cat file",
1780
+ "parse",
1781
+ "read /",
1782
+ "cat /"
1783
+ ],
1784
+ "fields": {
1785
+ "path": {
1786
+ "type": "string",
1787
+ "required": true
1788
+ },
1789
+ "environment": {
1790
+ "type": "environment",
1791
+ "required": false,
1792
+ "default": "dev"
1793
+ }
1794
+ },
1795
+ "command": "cat {{path}}",
1796
+ "execution": "local",
1797
+ "requiresConfirmation": false,
1798
+ "riskLevel": "low",
1799
+ "examples": [
1800
+ "parse /etc/passwd",
1801
+ "read the nginx config",
1802
+ "show .env file",
1803
+ "open /etc/shadow",
1804
+ "read docker-compose.yml"
1805
+ ]
1806
+ },
1807
+ {
1808
+ "name": "file.read",
1809
+ "description": "Read a file with smart output — shows sample if file is large",
1810
+ "synonyms": [
1811
+ "show me",
1812
+ "output file",
1813
+ "print file",
1814
+ "display file",
1815
+ "cat",
1816
+ "show file",
1817
+ "show the file",
1818
+ "look at",
1819
+ "open the"
1820
+ ],
1821
+ "fields": {
1822
+ "path": {
1823
+ "type": "string",
1824
+ "required": true
1825
+ },
1826
+ "environment": {
1827
+ "type": "environment",
1828
+ "required": false,
1829
+ "default": "dev"
1830
+ }
1831
+ },
1832
+ "command": "cat {{path}}",
1833
+ "execution": "local",
1834
+ "requiresConfirmation": false,
1835
+ "riskLevel": "low",
1836
+ "examples": [
1837
+ "show me package.json",
1838
+ "output /etc/nginx/nginx.conf",
1839
+ "look at the README",
1840
+ "show the .env file",
1841
+ "cat tsconfig.json"
1842
+ ]
1843
+ },
1844
+ {
1845
+ "name": "file.search_in",
1846
+ "description": "Search for something specific inside a file and show matches with context",
1847
+ "synonyms": [
1848
+ "search in file",
1849
+ "find in file",
1850
+ "look for in",
1851
+ "show me the part",
1852
+ "where does it say",
1853
+ "find where",
1854
+ "search file for"
1855
+ ],
1856
+ "fields": {
1857
+ "query": {
1858
+ "type": "string",
1859
+ "required": true
1860
+ },
1861
+ "path": {
1862
+ "type": "string",
1863
+ "required": true
1864
+ },
1865
+ "environment": {
1866
+ "type": "environment",
1867
+ "required": false,
1868
+ "default": "dev"
1869
+ }
1870
+ },
1871
+ "command": "grep -n -i -C 3 '{{query}}' {{path}}",
1872
+ "execution": "local",
1873
+ "requiresConfirmation": false,
1874
+ "riskLevel": "low",
1875
+ "examples": [
1876
+ "search for proxy_pass in /etc/nginx/nginx.conf",
1877
+ "find database in .env",
1878
+ "where does it say listen in nginx.conf",
1879
+ "show me the part about ssl in the config",
1880
+ "find where port is defined in package.json"
1881
+ ]
1882
+ },
1883
+ {
1884
+ "name": "file.search",
1885
+ "description": "Find where a config or service file is located",
1886
+ "synonyms": [
1887
+ "where is",
1888
+ "find config",
1889
+ "find file for",
1890
+ "locate config",
1891
+ "show me where",
1892
+ "where are the"
1893
+ ],
1894
+ "fields": {
1895
+ "query": {
1896
+ "type": "string",
1897
+ "required": true
1898
+ },
1899
+ "environment": {
1900
+ "type": "environment",
1901
+ "required": false,
1902
+ "default": "dev"
1903
+ }
1904
+ },
1905
+ "command": "echo 'Searching for: {{query}}'",
1906
+ "execution": "local",
1907
+ "requiresConfirmation": false,
1908
+ "riskLevel": "low",
1909
+ "examples": [
1910
+ "where is the nginx config",
1911
+ "find config for postgres",
1912
+ "where are the ssh keys",
1913
+ "locate redis config",
1914
+ "find the .env file"
1915
+ ]
1916
+ },
1917
+ {
1918
+ "name": "env.get",
1919
+ "description": "Read a variable from a .env file",
1920
+ "synonyms": [
1921
+ "get env",
1922
+ "show env",
1923
+ "read env",
1924
+ "what is the value of",
1925
+ "env value",
1926
+ "read the .env",
1927
+ "show the .env",
1928
+ "read .env",
1929
+ "read the .env file"
1930
+ ],
1931
+ "fields": {
1932
+ "key": {
1933
+ "type": "string",
1934
+ "required": false
1935
+ },
1936
+ "path": {
1937
+ "type": "string",
1938
+ "required": false,
1939
+ "default": ".env"
1940
+ }
1941
+ },
1942
+ "command": "cat {{path}}",
1943
+ "execution": "local",
1944
+ "requiresConfirmation": false,
1945
+ "riskLevel": "low",
1946
+ "examples": [
1947
+ "get env DATABASE_URL",
1948
+ "show env API_KEY from .env.production",
1949
+ "what is the value of REDIS_HOST",
1950
+ "read env file"
1951
+ ]
1952
+ },
1953
+ {
1954
+ "name": "env.set",
1955
+ "description": "Save a variable to a .env file with smart naming",
1956
+ "synonyms": [
1957
+ "set env",
1958
+ "save env",
1959
+ "save variable",
1960
+ "add env",
1961
+ "add variable",
1962
+ "set variable",
1963
+ "save to env",
1964
+ "save database",
1965
+ "save password",
1966
+ "save api key",
1967
+ "save token"
1968
+ ],
1969
+ "fields": {
1970
+ "key": {
1971
+ "type": "string",
1972
+ "required": false
1973
+ },
1974
+ "value": {
1975
+ "type": "string",
1976
+ "required": true
1977
+ },
1978
+ "topic": {
1979
+ "type": "string",
1980
+ "required": false
1981
+ },
1982
+ "purpose": {
1983
+ "type": "string",
1984
+ "required": false
1985
+ },
1986
+ "environment": {
1987
+ "type": "environment",
1988
+ "required": false
1989
+ },
1990
+ "path": {
1991
+ "type": "string",
1992
+ "required": false,
1993
+ "default": ".env"
1994
+ }
1995
+ },
1996
+ "command": "echo 'Setting env variable'",
1997
+ "execution": "local",
1998
+ "requiresConfirmation": true,
1999
+ "riskLevel": "medium",
2000
+ "examples": [
2001
+ "save database password for staging to .env",
2002
+ "set env API_KEY=abc123",
2003
+ "add redis url for prod",
2004
+ "save variable smtp password"
2005
+ ]
2006
+ },
2007
+ {
2008
+ "name": "archive.tar",
2009
+ "description": "Create a tar.gz archive from files or directories",
2010
+ "synonyms": [
2011
+ "tar",
2012
+ "tar.gz",
2013
+ "tarball",
2014
+ "create tar",
2015
+ "create archive",
2016
+ "compress",
2017
+ "tar up",
2018
+ "make archive"
2019
+ ],
2020
+ "fields": {
2021
+ "source": {
2022
+ "type": "string",
2023
+ "required": true
2024
+ },
2025
+ "destination": {
2026
+ "type": "string",
2027
+ "required": false
2028
+ },
2029
+ "environment": {
2030
+ "type": "environment",
2031
+ "required": false,
2032
+ "default": "dev"
2033
+ }
2034
+ },
2035
+ "command": "tar -czvf {{destination}} {{source}}",
2036
+ "execution": "remote",
2037
+ "requiresConfirmation": true,
2038
+ "riskLevel": "medium",
2039
+ "examples": [
2040
+ "tar /var/log/nginx to /tmp/nginx-logs.tar.gz",
2041
+ "create tar.gz of /etc/nginx on prod",
2042
+ "archive /srv/myapp to /backup/app.tar.gz",
2043
+ "compress /var/log on staging",
2044
+ "tar up the nginx config on prod"
2045
+ ]
2046
+ },
2047
+ {
2048
+ "name": "archive.untar",
2049
+ "description": "Extract a tar.gz archive",
2050
+ "synonyms": [
2051
+ "untar",
2052
+ "extract tar",
2053
+ "extract archive",
2054
+ "decompress tar",
2055
+ "untar.gz",
2056
+ "tar extract",
2057
+ "unpack tar",
2058
+ "unarchive",
2059
+ "extract .tar",
2060
+ "extract .gz",
2061
+ "untar /",
2062
+ "extract /"
2063
+ ],
2064
+ "fields": {
2065
+ "source": {
2066
+ "type": "string",
2067
+ "required": true
2068
+ },
2069
+ "destination": {
2070
+ "type": "string",
2071
+ "required": false,
2072
+ "default": "."
2073
+ },
2074
+ "environment": {
2075
+ "type": "environment",
2076
+ "required": false,
2077
+ "default": "dev"
2078
+ }
2079
+ },
2080
+ "command": "tar -xzvf {{source}} -C {{destination}}",
2081
+ "execution": "remote",
2082
+ "requiresConfirmation": true,
2083
+ "riskLevel": "medium",
2084
+ "fuzzyResolve": [
2085
+ "source"
2086
+ ],
2087
+ "examples": [
2088
+ "untar /tmp/backup.tar.gz to /srv/restore",
2089
+ "extract archive /backup/app.tar.gz on prod",
2090
+ "decompress /tmp/logs.tar.gz on staging",
2091
+ "unpack tar /root/data.tar.gz"
2092
+ ]
2093
+ },
2094
+ {
2095
+ "name": "archive.zip",
2096
+ "description": "Create a zip archive from files or directories",
2097
+ "synonyms": [
2098
+ "zip",
2099
+ "create zip",
2100
+ "zip up",
2101
+ "make zip"
2102
+ ],
2103
+ "fields": {
2104
+ "source": {
2105
+ "type": "string",
2106
+ "required": true
2107
+ },
2108
+ "destination": {
2109
+ "type": "string",
2110
+ "required": false
2111
+ },
2112
+ "environment": {
2113
+ "type": "environment",
2114
+ "required": false,
2115
+ "default": "dev"
2116
+ }
2117
+ },
2118
+ "command": "zip -r {{destination}} {{source}}",
2119
+ "execution": "remote",
2120
+ "requiresConfirmation": true,
2121
+ "riskLevel": "medium",
2122
+ "examples": [
2123
+ "zip /var/log/nginx to /tmp/nginx-logs.zip",
2124
+ "create zip of /etc/nginx on prod",
2125
+ "zip up /srv/myapp on staging"
2126
+ ]
2127
+ },
2128
+ {
2129
+ "name": "archive.unzip",
2130
+ "description": "Extract a zip archive",
2131
+ "synonyms": [
2132
+ "unzip",
2133
+ "extract zip",
2134
+ "decompress zip",
2135
+ "unpack zip"
2136
+ ],
2137
+ "fields": {
2138
+ "source": {
2139
+ "type": "string",
2140
+ "required": true
2141
+ },
2142
+ "destination": {
2143
+ "type": "string",
2144
+ "required": false,
2145
+ "default": "."
2146
+ },
2147
+ "environment": {
2148
+ "type": "environment",
2149
+ "required": false,
2150
+ "default": "dev"
2151
+ }
2152
+ },
2153
+ "command": "unzip -o {{source}} -d {{destination}}",
2154
+ "execution": "remote",
2155
+ "requiresConfirmation": true,
2156
+ "riskLevel": "medium",
2157
+ "fuzzyResolve": [
2158
+ "source"
2159
+ ],
2160
+ "examples": [
2161
+ "unzip /tmp/backup.zip to /srv/restore",
2162
+ "extract zip /root/data.zip on prod",
2163
+ "unpack zip /tmp/files.zip on staging"
2164
+ ]
2165
+ },
2166
+ {
2167
+ "name": "archive.list",
2168
+ "description": "List contents of a tar.gz or zip archive without extracting",
2169
+ "synonyms": [
2170
+ "list archive",
2171
+ "show archive",
2172
+ "what is in the archive",
2173
+ "list tar",
2174
+ "list zip",
2175
+ "archive contents"
2176
+ ],
2177
+ "fields": {
2178
+ "source": {
2179
+ "type": "string",
2180
+ "required": true
2181
+ },
2182
+ "environment": {
2183
+ "type": "environment",
2184
+ "required": false,
2185
+ "default": "dev"
2186
+ }
2187
+ },
2188
+ "command": "if echo '{{source}}' | grep -qE '\\.zip$'; then unzip -l {{source}}; else tar -tzvf {{source}}; fi",
2189
+ "execution": "remote",
2190
+ "requiresConfirmation": false,
2191
+ "riskLevel": "low",
2192
+ "fuzzyResolve": [
2193
+ "source"
2194
+ ],
2195
+ "examples": [
2196
+ "list archive /tmp/backup.tar.gz",
2197
+ "what is in /root/data.zip",
2198
+ "show archive contents of /backup/app.tar.gz on prod"
2199
+ ]
2200
+ },
2201
+ {
2202
+ "name": "sync.rsync",
2203
+ "description": "Sync files between locations using rsync",
2204
+ "synonyms": [
2205
+ "rsync",
2206
+ "sync files",
2207
+ "sync to",
2208
+ "sync from",
2209
+ "mirror files",
2210
+ "rsync to",
2211
+ "rsync from"
2212
+ ],
2213
+ "fields": {
2214
+ "source": {
2215
+ "type": "string",
2216
+ "required": true
2217
+ },
2218
+ "destination": {
2219
+ "type": "string",
2220
+ "required": true
2221
+ },
2222
+ "environment": {
2223
+ "type": "environment",
2224
+ "required": false,
2225
+ "default": "dev"
2226
+ }
2227
+ },
2228
+ "command": "rsync -avz --progress {{source}} {{destination}}",
2229
+ "execution": "remote",
2230
+ "requiresConfirmation": true,
2231
+ "riskLevel": "medium",
2232
+ "examples": [
2233
+ "rsync /var/www to /backup/www on prod",
2234
+ "sync /srv/myapp to user@backup-server:/backup/",
2235
+ "rsync from /opt/data to /mnt/nas on staging",
2236
+ "mirror files /etc/nginx to /backup/nginx-config"
2237
+ ]
2238
+ },
2239
+ {
2240
+ "name": "sync.rsync_remote",
2241
+ "description": "Rsync files between two servers or from local to remote",
2242
+ "synonyms": [
2243
+ "rsync remote",
2244
+ "sync remote",
2245
+ "rsync between",
2246
+ "sync between servers",
2247
+ "push files to",
2248
+ "pull files from"
2249
+ ],
2250
+ "fields": {
2251
+ "source": {
2252
+ "type": "string",
2253
+ "required": true
2254
+ },
2255
+ "destination": {
2256
+ "type": "string",
2257
+ "required": true
2258
+ },
2259
+ "environment": {
2260
+ "type": "environment",
2261
+ "required": false
2262
+ }
2263
+ },
2264
+ "command": "rsync -avz --progress -e ssh {{source}} {{destination}}",
2265
+ "execution": "local",
2266
+ "requiresConfirmation": true,
2267
+ "riskLevel": "high",
2268
+ "examples": [
2269
+ "push files /var/www to user@prod:/var/www",
2270
+ "pull files from staging:/var/log to /tmp/logs",
2271
+ "rsync between dev and staging for /srv/app"
2272
+ ]
2273
+ },
2274
+ {
2275
+ "name": "backup.create",
2276
+ "description": "Create a backup of files, directories, or databases",
2277
+ "synonyms": [
2278
+ "back up",
2279
+ "create backup",
2280
+ "make backup",
2281
+ "snapshot",
2282
+ "backup to",
2283
+ "backup /"
2284
+ ],
2285
+ "fields": {
2286
+ "source": {
2287
+ "type": "string",
2288
+ "required": true
2289
+ },
2290
+ "destination": {
2291
+ "type": "string",
2292
+ "required": false,
2293
+ "default": "/backup"
2294
+ },
2295
+ "environment": {
2296
+ "type": "environment",
2297
+ "required": false,
2298
+ "default": "dev"
2299
+ }
2300
+ },
2301
+ "command": "DEST={{destination}}/$(basename {{source}})-$(date +%Y%m%d-%H%M%S).tar.gz && tar -czvf $DEST {{source}} && echo 'Backup created: '$DEST",
2302
+ "execution": "remote",
2303
+ "requiresConfirmation": true,
2304
+ "riskLevel": "medium",
2305
+ "examples": [
2306
+ "backup /etc/nginx on prod",
2307
+ "create backup of /srv/myapp to /backup on staging",
2308
+ "back up the database config on prod",
2309
+ "backup /var/www on prod"
2310
+ ]
2311
+ },
2312
+ {
2313
+ "name": "backup.restore",
2314
+ "description": "Restore from a backup archive",
2315
+ "synonyms": [
2316
+ "restore backup",
2317
+ "restore from backup",
2318
+ "recover",
2319
+ "restore from"
2320
+ ],
2321
+ "fields": {
2322
+ "source": {
2323
+ "type": "string",
2324
+ "required": true
2325
+ },
2326
+ "destination": {
2327
+ "type": "string",
2328
+ "required": false,
2329
+ "default": "/"
2330
+ },
2331
+ "environment": {
2332
+ "type": "environment",
2333
+ "required": false,
2334
+ "default": "dev"
2335
+ }
2336
+ },
2337
+ "command": "tar -xzvf {{source}} -C {{destination}} && echo 'Restored from: {{source}}'",
2338
+ "execution": "remote",
2339
+ "requiresConfirmation": true,
2340
+ "riskLevel": "high",
2341
+ "fuzzyResolve": [
2342
+ "source"
2343
+ ],
2344
+ "examples": [
2345
+ "restore backup /backup/nginx-20240101.tar.gz on prod",
2346
+ "restore from /backup/app-latest.tar.gz to /srv/myapp",
2347
+ "recover from backup on staging"
2348
+ ]
2349
+ },
2350
+ {
2351
+ "name": "backup.list",
2352
+ "description": "List available backups",
2353
+ "synonyms": [
2354
+ "list backups",
2355
+ "show backups",
2356
+ "available backups",
2357
+ "what backups"
2358
+ ],
2359
+ "fields": {
2360
+ "path": {
2361
+ "type": "string",
2362
+ "required": false,
2363
+ "default": "/backup"
2364
+ },
2365
+ "environment": {
2366
+ "type": "environment",
2367
+ "required": false,
2368
+ "default": "dev"
2369
+ }
2370
+ },
2371
+ "command": "ls -lah {{path}}/*.tar.gz {{path}}/*.zip 2>/dev/null | sort -k6,7 || echo 'No backups found in {{path}}'",
2372
+ "execution": "remote",
2373
+ "requiresConfirmation": false,
2374
+ "riskLevel": "low",
2375
+ "examples": [
2376
+ "list backups on prod",
2377
+ "show available backups on staging",
2378
+ "what backups are in /backup on prod"
2379
+ ]
2380
+ },
2381
+ {
2382
+ "name": "package.install",
2383
+ "description": "Install a system package",
2384
+ "synonyms": [
2385
+ "install package",
2386
+ "apt install",
2387
+ "yum install",
2388
+ "dnf install",
2389
+ "install"
2390
+ ],
2391
+ "fields": {
2392
+ "package": {
2393
+ "type": "string",
2394
+ "required": true
2395
+ },
2396
+ "environment": {
2397
+ "type": "environment",
2398
+ "required": false,
2399
+ "default": "dev"
2400
+ }
2401
+ },
2402
+ "command": "if command -v apt-get >/dev/null; then sudo apt-get install -y {{package}}; elif command -v dnf >/dev/null; then sudo dnf install -y {{package}}; elif command -v yum >/dev/null; then sudo yum install -y {{package}}; else echo 'No supported package manager found'; fi",
2403
+ "execution": "remote",
2404
+ "requiresConfirmation": true,
2405
+ "riskLevel": "high",
2406
+ "examples": [
2407
+ "install nginx on prod",
2408
+ "apt install certbot on staging",
2409
+ "install whois on dev",
2410
+ "install zip on prod"
2411
+ ]
2412
+ },
2413
+ {
2414
+ "name": "package.check",
2415
+ "description": "Check if a package is installed",
2416
+ "synonyms": [
2417
+ "is installed",
2418
+ "check package",
2419
+ "which",
2420
+ "package installed",
2421
+ "command exists",
2422
+ "is zip installed",
2423
+ "is nginx installed",
2424
+ "is certbot installed"
2425
+ ],
2426
+ "fields": {
2427
+ "package": {
2428
+ "type": "string",
2429
+ "required": true
2430
+ },
2431
+ "environment": {
2432
+ "type": "environment",
2433
+ "required": false,
2434
+ "default": "dev"
2435
+ }
2436
+ },
2437
+ "command": "command -v {{package}} && echo '{{package}} is installed' && {{package}} --version 2>/dev/null || dpkg -l {{package}} 2>/dev/null || rpm -q {{package}} 2>/dev/null || echo '{{package}} is NOT installed'",
2438
+ "execution": "remote",
2439
+ "requiresConfirmation": false,
2440
+ "riskLevel": "low",
2441
+ "examples": [
2442
+ "is nginx installed on prod",
2443
+ "check package certbot on staging",
2444
+ "which rsync on dev",
2445
+ "is zip installed"
2446
+ ]
2447
+ },
2448
+ {
2449
+ "name": "swap.create",
2450
+ "description": "Create and enable a swap file",
2451
+ "synonyms": [
2452
+ "create swap",
2453
+ "add swap",
2454
+ "make swap",
2455
+ "enable swap",
2456
+ "swapfile"
2457
+ ],
2458
+ "fields": {
2459
+ "size": {
2460
+ "type": "string",
2461
+ "required": false,
2462
+ "default": "2G"
2463
+ },
2464
+ "path": {
2465
+ "type": "string",
2466
+ "required": false,
2467
+ "default": "/swapfile"
2468
+ },
2469
+ "environment": {
2470
+ "type": "environment",
2471
+ "required": false,
2472
+ "default": "dev"
2473
+ }
2474
+ },
2475
+ "command": "sudo fallocate -l {{size}} {{path}} && sudo chmod 600 {{path}} && sudo mkswap {{path}} && sudo swapon {{path}} && echo '{{path}} ({{size}}) activated' && free -h",
2476
+ "execution": "remote",
2477
+ "requiresConfirmation": true,
2478
+ "riskLevel": "high",
2479
+ "examples": [
2480
+ "create swap 4G on prod",
2481
+ "add swap file on staging",
2482
+ "make 2G swapfile on dev"
2483
+ ]
2484
+ },
2485
+ {
2486
+ "name": "swap.delete",
2487
+ "description": "Disable and remove a swap file",
2488
+ "synonyms": [
2489
+ "delete swap",
2490
+ "remove swap",
2491
+ "disable swap",
2492
+ "remove swapfile"
2493
+ ],
2494
+ "fields": {
2495
+ "path": {
2496
+ "type": "string",
2497
+ "required": false,
2498
+ "default": "/swapfile"
2499
+ },
2500
+ "environment": {
2501
+ "type": "environment",
2502
+ "required": false,
2503
+ "default": "dev"
2504
+ }
2505
+ },
2506
+ "command": "sudo swapoff {{path}} && sudo rm -f {{path}} && echo 'Swap removed: {{path}}' && free -h",
2507
+ "execution": "remote",
2508
+ "requiresConfirmation": true,
2509
+ "riskLevel": "high",
2510
+ "examples": [
2511
+ "delete swap on prod",
2512
+ "remove swapfile on staging",
2513
+ "disable swap on dev"
2514
+ ]
2515
+ },
2516
+ {
2517
+ "name": "swap.status",
2518
+ "description": "Show current swap usage",
2519
+ "synonyms": [
2520
+ "swap status",
2521
+ "show swap",
2522
+ "swap usage",
2523
+ "swapon"
2524
+ ],
2525
+ "fields": {
2526
+ "environment": {
2527
+ "type": "environment",
2528
+ "required": false,
2529
+ "default": "dev"
2530
+ }
2531
+ },
2532
+ "command": "swapon --show && echo '' && free -h",
2533
+ "execution": "remote",
2534
+ "requiresConfirmation": false,
2535
+ "riskLevel": "low",
2536
+ "examples": [
2537
+ "show swap on prod",
2538
+ "swap status on staging",
2539
+ "swap usage on dev"
2540
+ ]
2541
+ },
2542
+ {
2543
+ "name": "network.curl",
2544
+ "description": "Make an HTTP request to a URL",
2545
+ "synonyms": [
2546
+ "curl",
2547
+ "http request",
2548
+ "fetch url",
2549
+ "get url",
2550
+ "hit endpoint",
2551
+ "call api",
2552
+ "wget"
2553
+ ],
2554
+ "fields": {
2555
+ "url": {
2556
+ "type": "string",
2557
+ "required": true
2558
+ },
2559
+ "method": {
2560
+ "type": "string",
2561
+ "required": false,
2562
+ "default": "GET"
2563
+ },
2564
+ "environment": {
2565
+ "type": "environment",
2566
+ "required": false,
2567
+ "default": "dev"
2568
+ }
2569
+ },
2570
+ "command": "curl -sS -X {{method}} -w '\\n\\nHTTP %{http_code} | %{time_total}s | %{size_download} bytes' {{url}}",
2571
+ "execution": "remote",
2572
+ "requiresConfirmation": false,
2573
+ "riskLevel": "low",
2574
+ "examples": [
2575
+ "curl https://example.com",
2576
+ "hit endpoint https://api.example.com/health on prod",
2577
+ "fetch url https://example.com/api/status",
2578
+ "call api https://localhost:3000/health on dev"
2579
+ ]
2580
+ },
2581
+ {
2582
+ "name": "network.whois",
2583
+ "description": "Look up domain registration and DNS information",
2584
+ "synonyms": [
2585
+ "whois",
2586
+ "domain info",
2587
+ "domain lookup",
2588
+ "who owns",
2589
+ "domain registration",
2590
+ "rdap"
2591
+ ],
2592
+ "fields": {
2593
+ "target": {
2594
+ "type": "string",
2595
+ "required": true
2596
+ },
2597
+ "environment": {
2598
+ "type": "environment",
2599
+ "required": false,
2600
+ "default": "dev"
2601
+ }
2602
+ },
2603
+ "command": "whois {{target}} 2>/dev/null || curl -sS 'https://rdap.org/domain/{{target}}' | head -50",
2604
+ "execution": "remote",
2605
+ "requiresConfirmation": false,
2606
+ "riskLevel": "low",
2607
+ "examples": [
2608
+ "whois example.com",
2609
+ "who owns google.com",
2610
+ "domain info example.org",
2611
+ "domain lookup mysite.io"
2612
+ ]
2613
+ },
2614
+ {
2615
+ "name": "network.dig",
2616
+ "description": "DNS lookup for a domain",
2617
+ "synonyms": [
2618
+ "dig",
2619
+ "dns lookup",
2620
+ "nslookup",
2621
+ "resolve dns",
2622
+ "dns records",
2623
+ "lookup dns"
2624
+ ],
2625
+ "fields": {
2626
+ "target": {
2627
+ "type": "string",
2628
+ "required": true
2629
+ },
2630
+ "recordType": {
2631
+ "type": "string",
2632
+ "required": false,
2633
+ "default": "A"
2634
+ },
2635
+ "environment": {
2636
+ "type": "environment",
2637
+ "required": false,
2638
+ "default": "dev"
2639
+ }
2640
+ },
2641
+ "command": "dig {{target}} {{recordType}} +short && echo '\\n--- Full ---\\n' && dig {{target}} {{recordType}}",
2642
+ "execution": "remote",
2643
+ "requiresConfirmation": false,
2644
+ "riskLevel": "low",
2645
+ "examples": [
2646
+ "dig example.com",
2647
+ "dns lookup google.com",
2648
+ "nslookup example.com MX",
2649
+ "resolve dns example.org",
2650
+ "dns records for mysite.io"
2651
+ ]
2652
+ },
2653
+ {
2654
+ "name": "network.traceroute",
2655
+ "description": "Trace the network route to a host",
2656
+ "synonyms": [
2657
+ "traceroute",
2658
+ "trace route",
2659
+ "tracepath",
2660
+ "trace network"
2661
+ ],
2662
+ "fields": {
2663
+ "target": {
2664
+ "type": "string",
2665
+ "required": true
2666
+ },
2667
+ "environment": {
2668
+ "type": "environment",
2669
+ "required": false,
2670
+ "default": "dev"
2671
+ }
2672
+ },
2673
+ "command": "traceroute -m 15 {{target}} 2>/dev/null || tracepath {{target}}",
2674
+ "execution": "remote",
2675
+ "requiresConfirmation": false,
2676
+ "riskLevel": "low",
2677
+ "examples": [
2678
+ "traceroute google.com",
2679
+ "trace route to 8.8.8.8 on prod",
2680
+ "tracepath example.com"
2681
+ ]
2682
+ },
2683
+ {
2684
+ "name": "perm.check",
2685
+ "description": "Check file or directory permissions and access",
2686
+ "synonyms": [
2687
+ "check permissions",
2688
+ "file permissions",
2689
+ "who can access",
2690
+ "can i read",
2691
+ "can i write",
2692
+ "access check",
2693
+ "stat file",
2694
+ "show permissions"
2695
+ ],
2696
+ "fields": {
2697
+ "path": {
2698
+ "type": "string",
2699
+ "required": true
2700
+ },
2701
+ "environment": {
2702
+ "type": "environment",
2703
+ "required": false,
2704
+ "default": "dev"
2705
+ }
2706
+ },
2707
+ "command": "stat -c '%A %a %U %G %s %n' {{path}} && echo '' && ls -la {{path}}",
2708
+ "execution": "remote",
2709
+ "requiresConfirmation": false,
2710
+ "riskLevel": "low",
2711
+ "examples": [
2712
+ "check permissions on /etc/shadow",
2713
+ "who can access /var/www on prod",
2714
+ "show permissions for /etc/nginx on staging",
2715
+ "can I write to /var/log on prod"
2716
+ ]
2717
+ },
2718
+ {
2719
+ "name": "perm.chmod",
2720
+ "description": "Change file or directory permissions",
2721
+ "synonyms": [
2722
+ "chmod",
2723
+ "change permissions",
2724
+ "set permissions",
2725
+ "make executable",
2726
+ "make readable",
2727
+ "make writable",
2728
+ "set read only",
2729
+ "secure file"
2730
+ ],
2731
+ "fields": {
2732
+ "mode": {
2733
+ "type": "string",
2734
+ "required": true
2735
+ },
2736
+ "path": {
2737
+ "type": "string",
2738
+ "required": true
2739
+ },
2740
+ "recursive": {
2741
+ "type": "string",
2742
+ "required": false
2743
+ },
2744
+ "environment": {
2745
+ "type": "environment",
2746
+ "required": false,
2747
+ "default": "dev"
2748
+ }
2749
+ },
2750
+ "command": "sudo chmod {{mode}} {{path}} && stat -c '%A %a %U %G %n' {{path}}",
2751
+ "execution": "remote",
2752
+ "requiresConfirmation": true,
2753
+ "riskLevel": "high",
2754
+ "examples": [
2755
+ "chmod 755 /var/www on prod",
2756
+ "make /deploy.sh executable on staging",
2757
+ "set 600 on /etc/ssl/private/key.pem",
2758
+ "change permissions to 644 on /etc/nginx/nginx.conf",
2759
+ "secure /root/.ssh/id_rsa on prod"
2760
+ ]
2761
+ },
2762
+ {
2763
+ "name": "perm.chown",
2764
+ "description": "Change file or directory ownership",
2765
+ "synonyms": [
2766
+ "chown",
2767
+ "change owner",
2768
+ "change ownership",
2769
+ "set owner",
2770
+ "give to user",
2771
+ "give ownership"
2772
+ ],
2773
+ "fields": {
2774
+ "owner": {
2775
+ "type": "string",
2776
+ "required": true
2777
+ },
2778
+ "path": {
2779
+ "type": "string",
2780
+ "required": true
2781
+ },
2782
+ "environment": {
2783
+ "type": "environment",
2784
+ "required": false,
2785
+ "default": "dev"
2786
+ }
2787
+ },
2788
+ "command": "sudo chown {{owner}} {{path}} && stat -c '%A %a %U %G %n' {{path}}",
2789
+ "execution": "remote",
2790
+ "requiresConfirmation": true,
2791
+ "riskLevel": "high",
2792
+ "examples": [
2793
+ "chown www-data:www-data /var/www on prod",
2794
+ "change owner of /srv/app to deploy on staging",
2795
+ "give /var/log/app to deploy:deploy on prod"
2796
+ ]
2797
+ },
2798
+ {
2799
+ "name": "perm.chown_recursive",
2800
+ "description": "Recursively change ownership of a directory",
2801
+ "synonyms": [
2802
+ "chown recursive",
2803
+ "change owner recursively",
2804
+ "chown -R"
2805
+ ],
2806
+ "fields": {
2807
+ "owner": {
2808
+ "type": "string",
2809
+ "required": true
2810
+ },
2811
+ "path": {
2812
+ "type": "string",
2813
+ "required": true
2814
+ },
2815
+ "environment": {
2816
+ "type": "environment",
2817
+ "required": false,
2818
+ "default": "dev"
2819
+ }
2820
+ },
2821
+ "command": "sudo chown -R {{owner}} {{path}} && echo 'Ownership changed recursively' && ls -la {{path}}",
2822
+ "execution": "remote",
2823
+ "requiresConfirmation": true,
2824
+ "riskLevel": "high",
2825
+ "examples": [
2826
+ "chown -R www-data:www-data /var/www on prod",
2827
+ "change owner recursively deploy:deploy /srv/app on staging"
2828
+ ]
2829
+ },
2830
+ {
2831
+ "name": "perm.chmod_recursive",
2832
+ "description": "Recursively change permissions of a directory",
2833
+ "synonyms": [
2834
+ "chmod recursive",
2835
+ "chmod -R",
2836
+ "change permissions recursively"
2837
+ ],
2838
+ "fields": {
2839
+ "mode": {
2840
+ "type": "string",
2841
+ "required": true
2842
+ },
2843
+ "path": {
2844
+ "type": "string",
2845
+ "required": true
2846
+ },
2847
+ "environment": {
2848
+ "type": "environment",
2849
+ "required": false,
2850
+ "default": "dev"
2851
+ }
2852
+ },
2853
+ "command": "sudo chmod -R {{mode}} {{path}} && echo 'Permissions changed recursively' && ls -la {{path}}",
2854
+ "execution": "remote",
2855
+ "requiresConfirmation": true,
2856
+ "riskLevel": "high",
2857
+ "examples": [
2858
+ "chmod -R 755 /var/www on prod",
2859
+ "change permissions recursively 644 /etc/nginx on staging"
2860
+ ]
2861
+ },
2862
+ {
2863
+ "name": "system.history",
2864
+ "description": "Show shell command history",
2865
+ "synonyms": [
2866
+ "history",
2867
+ "command history",
2868
+ "bash history",
2869
+ "check history",
2870
+ "show history",
2871
+ "recent commands",
2872
+ "what did i run",
2873
+ "show command history"
2874
+ ],
2875
+ "fields": {
2876
+ "query": {
2877
+ "type": "string",
2878
+ "required": false
2879
+ },
2880
+ "lines": {
2881
+ "type": "number",
2882
+ "required": false,
2883
+ "default": 30
2884
+ },
2885
+ "environment": {
2886
+ "type": "environment",
2887
+ "required": false,
2888
+ "default": "dev"
2889
+ }
2890
+ },
2891
+ "command": "if [ -n '{{query}}' ]; then history 2>/dev/null | grep -i '{{query}}' | tail -{{lines}} || cat ~/.bash_history 2>/dev/null | grep -i '{{query}}' | tail -{{lines}}; else history 2>/dev/null | tail -{{lines}} || cat ~/.bash_history 2>/dev/null | tail -{{lines}}; fi",
2892
+ "execution": "remote",
2893
+ "requiresConfirmation": false,
2894
+ "riskLevel": "low",
2895
+ "examples": [
2896
+ "check history",
2897
+ "show command history",
2898
+ "what did i run recently",
2899
+ "search history for nginx",
2900
+ "bash history on prod"
2901
+ ]
2902
+ },
2903
+ {
2904
+ "name": "system.hostname",
2905
+ "description": "Show or set the system hostname",
2906
+ "synonyms": [
2907
+ "hostname",
2908
+ "show hostname",
2909
+ "what is the hostname",
2910
+ "set hostname"
2911
+ ],
2912
+ "fields": {
2913
+ "environment": {
2914
+ "type": "environment",
2915
+ "required": false,
2916
+ "default": "dev"
2917
+ }
2918
+ },
2919
+ "command": "hostname && hostnamectl 2>/dev/null || echo ''",
2920
+ "execution": "remote",
2921
+ "requiresConfirmation": false,
2922
+ "riskLevel": "low",
2923
+ "examples": [
2924
+ "hostname on prod",
2925
+ "what is the hostname on staging"
2926
+ ]
2927
+ },
2928
+ {
2929
+ "name": "system.datetime",
2930
+ "description": "Show date, time, and timezone",
2931
+ "synonyms": [
2932
+ "date",
2933
+ "time",
2934
+ "datetime",
2935
+ "timedatectl",
2936
+ "what time",
2937
+ "timezone"
2938
+ ],
2939
+ "fields": {
2940
+ "environment": {
2941
+ "type": "environment",
2942
+ "required": false,
2943
+ "default": "dev"
2944
+ }
2945
+ },
2946
+ "command": "date && echo '' && timedatectl 2>/dev/null || echo ''",
2947
+ "execution": "remote",
2948
+ "requiresConfirmation": false,
2949
+ "riskLevel": "low",
2950
+ "examples": [
2951
+ "date on prod",
2952
+ "what time is it on staging",
2953
+ "show timezone"
2954
+ ]
2955
+ },
2956
+ {
2957
+ "name": "system.reboot",
2958
+ "description": "Reboot the server",
2959
+ "synonyms": [
2960
+ "reboot",
2961
+ "restart server",
2962
+ "reboot server"
2963
+ ],
2964
+ "fields": {
2965
+ "environment": {
2966
+ "type": "environment",
2967
+ "required": true
2968
+ }
2969
+ },
2970
+ "command": "sudo reboot",
2971
+ "execution": "remote",
2972
+ "requiresConfirmation": true,
2973
+ "riskLevel": "high",
2974
+ "examples": [
2975
+ "reboot prod",
2976
+ "restart server on staging"
2977
+ ]
2978
+ },
2979
+ {
2980
+ "name": "system.shutdown",
2981
+ "description": "Shutdown the server",
2982
+ "synonyms": [
2983
+ "shutdown",
2984
+ "power off",
2985
+ "halt server",
2986
+ "shutdown server"
2987
+ ],
2988
+ "fields": {
2989
+ "environment": {
2990
+ "type": "environment",
2991
+ "required": true
2992
+ }
2993
+ },
2994
+ "command": "sudo shutdown -h now",
2995
+ "execution": "remote",
2996
+ "requiresConfirmation": true,
2997
+ "riskLevel": "high",
2998
+ "examples": [
2999
+ "shutdown prod",
3000
+ "power off staging"
3001
+ ]
3002
+ },
3003
+ {
3004
+ "name": "system.info",
3005
+ "description": "Show full system information (kernel, distro, hardware)",
3006
+ "synonyms": [
3007
+ "system info",
3008
+ "uname",
3009
+ "os info",
3010
+ "kernel info",
3011
+ "distro info",
3012
+ "lsb_release",
3013
+ "neofetch",
3014
+ "what os",
3015
+ "system health",
3016
+ "os are we running"
3017
+ ],
3018
+ "fields": {
3019
+ "environment": {
3020
+ "type": "environment",
3021
+ "required": false,
3022
+ "default": "dev"
3023
+ }
3024
+ },
3025
+ "command": "uname -a && echo '' && cat /etc/os-release 2>/dev/null && echo '' && lscpu | head -15 2>/dev/null",
3026
+ "execution": "remote",
3027
+ "requiresConfirmation": false,
3028
+ "riskLevel": "low",
3029
+ "examples": [
3030
+ "system info on prod",
3031
+ "uname on staging",
3032
+ "what distro is prod running"
3033
+ ]
3034
+ },
3035
+ {
3036
+ "name": "systemd.enable",
3037
+ "description": "Enable a service to start on boot",
3038
+ "synonyms": [
3039
+ "systemctl enable",
3040
+ "enable service",
3041
+ "enable on boot",
3042
+ "auto start",
3043
+ "enable",
3044
+ "enable nginx on boot",
3045
+ "enable redis on boot",
3046
+ "enable api on boot"
3047
+ ],
3048
+ "fields": {
3049
+ "service": {
3050
+ "type": "service",
3051
+ "required": true
3052
+ },
3053
+ "environment": {
3054
+ "type": "environment",
3055
+ "required": false,
3056
+ "default": "dev"
3057
+ }
3058
+ },
3059
+ "command": "sudo systemctl enable {{service}} && systemctl is-enabled {{service}}",
3060
+ "execution": "remote",
3061
+ "requiresConfirmation": true,
3062
+ "riskLevel": "medium",
3063
+ "examples": [
3064
+ "enable nginx on boot on prod",
3065
+ "systemctl enable redis on staging"
3066
+ ]
3067
+ },
3068
+ {
3069
+ "name": "systemd.disable",
3070
+ "description": "Disable a service from starting on boot",
3071
+ "synonyms": [
3072
+ "systemctl disable",
3073
+ "disable service",
3074
+ "disable on boot",
3075
+ "no auto start"
3076
+ ],
3077
+ "fields": {
3078
+ "service": {
3079
+ "type": "service",
3080
+ "required": true
3081
+ },
3082
+ "environment": {
3083
+ "type": "environment",
3084
+ "required": false,
3085
+ "default": "dev"
3086
+ }
3087
+ },
3088
+ "command": "sudo systemctl disable {{service}} && systemctl is-enabled {{service}}",
3089
+ "execution": "remote",
3090
+ "requiresConfirmation": true,
3091
+ "riskLevel": "medium",
3092
+ "examples": [
3093
+ "disable nginx on boot on prod",
3094
+ "systemctl disable redis on staging"
3095
+ ]
3096
+ },
3097
+ {
3098
+ "name": "systemd.start",
3099
+ "description": "Start a service",
3100
+ "synonyms": [
3101
+ "start service",
3102
+ "systemctl start",
3103
+ "service start"
3104
+ ],
3105
+ "fields": {
3106
+ "service": {
3107
+ "type": "service",
3108
+ "required": true
3109
+ },
3110
+ "environment": {
3111
+ "type": "environment",
3112
+ "required": false,
3113
+ "default": "dev"
3114
+ }
3115
+ },
3116
+ "command": "sudo systemctl start {{service}} && systemctl status {{service}} --no-pager",
3117
+ "execution": "remote",
3118
+ "requiresConfirmation": true,
3119
+ "riskLevel": "medium",
3120
+ "examples": [
3121
+ "start nginx on prod",
3122
+ "start redis on staging"
3123
+ ]
3124
+ },
3125
+ {
3126
+ "name": "systemd.stop",
3127
+ "description": "Stop a service",
3128
+ "synonyms": [
3129
+ "stop service",
3130
+ "systemctl stop",
3131
+ "service stop",
3132
+ "stop",
3133
+ "stop redis",
3134
+ "stop nginx",
3135
+ "stop api"
3136
+ ],
3137
+ "fields": {
3138
+ "service": {
3139
+ "type": "service",
3140
+ "required": true
3141
+ },
3142
+ "environment": {
3143
+ "type": "environment",
3144
+ "required": false,
3145
+ "default": "dev"
3146
+ }
3147
+ },
3148
+ "command": "sudo systemctl stop {{service}} && systemctl status {{service}} --no-pager",
3149
+ "execution": "remote",
3150
+ "requiresConfirmation": true,
3151
+ "riskLevel": "high",
3152
+ "examples": [
3153
+ "stop nginx on prod",
3154
+ "stop redis on staging"
3155
+ ]
3156
+ },
3157
+ {
3158
+ "name": "logs.journal",
3159
+ "description": "View systemd journal logs",
3160
+ "synonyms": [
3161
+ "journalctl",
3162
+ "journal logs",
3163
+ "systemd logs",
3164
+ "service logs"
3165
+ ],
3166
+ "fields": {
3167
+ "service": {
3168
+ "type": "service",
3169
+ "required": false
3170
+ },
3171
+ "lines": {
3172
+ "type": "number",
3173
+ "required": false,
3174
+ "default": 50
3175
+ },
3176
+ "environment": {
3177
+ "type": "environment",
3178
+ "required": false,
3179
+ "default": "dev"
3180
+ }
3181
+ },
3182
+ "command": "journalctl -u {{service}} -n {{lines}} --no-pager 2>/dev/null || journalctl -n {{lines}} --no-pager",
3183
+ "execution": "remote",
3184
+ "requiresConfirmation": false,
3185
+ "riskLevel": "low",
3186
+ "examples": [
3187
+ "journalctl nginx on prod",
3188
+ "service logs for api on staging",
3189
+ "journal logs 100 on prod"
3190
+ ]
3191
+ },
3192
+ {
3193
+ "name": "logs.dmesg",
3194
+ "description": "View kernel messages",
3195
+ "synonyms": [
3196
+ "dmesg",
3197
+ "kernel messages",
3198
+ "kernel log",
3199
+ "boot messages"
3200
+ ],
3201
+ "fields": {
3202
+ "environment": {
3203
+ "type": "environment",
3204
+ "required": false,
3205
+ "default": "dev"
3206
+ }
3207
+ },
3208
+ "command": "dmesg --time-format iso | tail -50",
3209
+ "execution": "remote",
3210
+ "requiresConfirmation": false,
3211
+ "riskLevel": "low",
3212
+ "examples": [
3213
+ "dmesg on prod",
3214
+ "kernel messages on staging"
3215
+ ]
3216
+ },
3217
+ {
3218
+ "name": "disk.mount",
3219
+ "description": "Mount a filesystem",
3220
+ "synonyms": [
3221
+ "mount",
3222
+ "mount disk",
3223
+ "mount volume",
3224
+ "mount filesystem"
3225
+ ],
3226
+ "fields": {
3227
+ "source": {
3228
+ "type": "string",
3229
+ "required": true
3230
+ },
3231
+ "destination": {
3232
+ "type": "string",
3233
+ "required": true
3234
+ },
3235
+ "environment": {
3236
+ "type": "environment",
3237
+ "required": false,
3238
+ "default": "dev"
3239
+ }
3240
+ },
3241
+ "command": "sudo mount {{source}} {{destination}} && df -h {{destination}}",
3242
+ "execution": "remote",
3243
+ "requiresConfirmation": true,
3244
+ "riskLevel": "high",
3245
+ "examples": [
3246
+ "mount /dev/sdb1 to /mnt/data on prod"
3247
+ ]
3248
+ },
3249
+ {
3250
+ "name": "disk.unmount",
3251
+ "description": "Unmount a filesystem",
3252
+ "synonyms": [
3253
+ "unmount",
3254
+ "umount",
3255
+ "unmount disk",
3256
+ "eject"
3257
+ ],
3258
+ "fields": {
3259
+ "path": {
3260
+ "type": "string",
3261
+ "required": true
3262
+ },
3263
+ "environment": {
3264
+ "type": "environment",
3265
+ "required": false,
3266
+ "default": "dev"
3267
+ }
3268
+ },
3269
+ "command": "sudo umount {{path}} && echo 'Unmounted {{path}}'",
3270
+ "execution": "remote",
3271
+ "requiresConfirmation": true,
3272
+ "riskLevel": "high",
3273
+ "examples": [
3274
+ "unmount /mnt/data on prod",
3275
+ "umount /mnt/backup on staging"
3276
+ ]
3277
+ },
3278
+ {
3279
+ "name": "disk.list",
3280
+ "description": "List block devices and partitions",
3281
+ "synonyms": [
3282
+ "lsblk",
3283
+ "list disks",
3284
+ "show disks",
3285
+ "list partitions",
3286
+ "disk info",
3287
+ "fdisk -l",
3288
+ "show drives"
3289
+ ],
3290
+ "fields": {
3291
+ "environment": {
3292
+ "type": "environment",
3293
+ "required": false,
3294
+ "default": "dev"
3295
+ }
3296
+ },
3297
+ "command": "lsblk -f && echo '' && df -h",
3298
+ "execution": "remote",
3299
+ "requiresConfirmation": false,
3300
+ "riskLevel": "low",
3301
+ "examples": [
3302
+ "list disks on prod",
3303
+ "lsblk on staging",
3304
+ "show partitions on prod"
3305
+ ]
3306
+ },
3307
+ {
3308
+ "name": "cron.add",
3309
+ "description": "Add a cron job",
3310
+ "synonyms": [
3311
+ "add cron",
3312
+ "create cron",
3313
+ "schedule job",
3314
+ "add crontab",
3315
+ "new cron"
3316
+ ],
3317
+ "fields": {
3318
+ "schedule": {
3319
+ "type": "string",
3320
+ "required": true
3321
+ },
3322
+ "command": {
3323
+ "type": "string",
3324
+ "required": true
3325
+ },
3326
+ "environment": {
3327
+ "type": "environment",
3328
+ "required": false,
3329
+ "default": "dev"
3330
+ }
3331
+ },
3332
+ "command": "(crontab -l 2>/dev/null; echo '{{schedule}} {{command}}') | crontab - && echo 'Cron added' && crontab -l",
3333
+ "execution": "remote",
3334
+ "requiresConfirmation": true,
3335
+ "riskLevel": "medium",
3336
+ "examples": [
3337
+ "add cron job every hour to run /scripts/backup.sh on prod"
3338
+ ]
3339
+ },
3340
+ {
3341
+ "name": "cron.remove",
3342
+ "description": "Remove a cron job",
3343
+ "synonyms": [
3344
+ "remove cron",
3345
+ "delete cron",
3346
+ "remove crontab entry"
3347
+ ],
3348
+ "fields": {
3349
+ "pattern": {
3350
+ "type": "string",
3351
+ "required": true
3352
+ },
3353
+ "environment": {
3354
+ "type": "environment",
3355
+ "required": false,
3356
+ "default": "dev"
3357
+ }
3358
+ },
3359
+ "command": "crontab -l | grep -v '{{pattern}}' | crontab - && echo 'Removed entries matching: {{pattern}}' && crontab -l",
3360
+ "execution": "remote",
3361
+ "requiresConfirmation": true,
3362
+ "riskLevel": "high",
3363
+ "examples": [
3364
+ "remove cron job for backup.sh on prod"
3365
+ ]
3366
+ },
3367
+ {
3368
+ "name": "security.ufw",
3369
+ "description": "Manage UFW firewall rules",
3370
+ "synonyms": [
3371
+ "ufw",
3372
+ "firewall",
3373
+ "ufw status",
3374
+ "firewall status",
3375
+ "ufw allow",
3376
+ "ufw deny",
3377
+ "open port",
3378
+ "close port",
3379
+ "block port"
3380
+ ],
3381
+ "fields": {
3382
+ "action": {
3383
+ "type": "string",
3384
+ "required": false,
3385
+ "default": "status"
3386
+ },
3387
+ "port": {
3388
+ "type": "string",
3389
+ "required": false
3390
+ },
3391
+ "environment": {
3392
+ "type": "environment",
3393
+ "required": false,
3394
+ "default": "dev"
3395
+ }
3396
+ },
3397
+ "command": "sudo ufw {{action}} {{port}} 2>/dev/null && sudo ufw status verbose || echo 'ufw not installed'",
3398
+ "execution": "remote",
3399
+ "requiresConfirmation": true,
3400
+ "riskLevel": "high",
3401
+ "examples": [
3402
+ "ufw status on prod",
3403
+ "open port 8080 on staging",
3404
+ "firewall status on prod",
3405
+ "block port 3306 on prod"
3406
+ ]
3407
+ },
3408
+ {
3409
+ "name": "security.fail2ban",
3410
+ "description": "Check or manage fail2ban",
3411
+ "synonyms": [
3412
+ "fail2ban",
3413
+ "fail2ban status",
3414
+ "banned ips",
3415
+ "fail2ban jails"
3416
+ ],
3417
+ "fields": {
3418
+ "environment": {
3419
+ "type": "environment",
3420
+ "required": false,
3421
+ "default": "dev"
3422
+ }
3423
+ },
3424
+ "command": "sudo fail2ban-client status 2>/dev/null && echo '' && sudo fail2ban-client status sshd 2>/dev/null || echo 'fail2ban not installed'",
3425
+ "execution": "remote",
3426
+ "requiresConfirmation": false,
3427
+ "riskLevel": "low",
3428
+ "examples": [
3429
+ "fail2ban status on prod",
3430
+ "show banned ips on staging"
3431
+ ]
3432
+ },
3433
+ {
3434
+ "name": "security.iptables",
3435
+ "description": "View iptables firewall rules",
3436
+ "synonyms": [
3437
+ "iptables",
3438
+ "iptables rules",
3439
+ "show firewall rules",
3440
+ "nftables"
3441
+ ],
3442
+ "fields": {
3443
+ "environment": {
3444
+ "type": "environment",
3445
+ "required": false,
3446
+ "default": "dev"
3447
+ }
3448
+ },
3449
+ "command": "sudo iptables -L -n -v --line-numbers 2>/dev/null || sudo nft list ruleset 2>/dev/null || echo 'No iptables/nftables'",
3450
+ "execution": "remote",
3451
+ "requiresConfirmation": false,
3452
+ "riskLevel": "low",
3453
+ "examples": [
3454
+ "show iptables rules on prod",
3455
+ "iptables on staging"
3456
+ ]
3457
+ },
3458
+ {
3459
+ "name": "security.sshkey",
3460
+ "description": "Manage SSH keys (generate, list, add authorized)",
3461
+ "synonyms": [
3462
+ "ssh key",
3463
+ "ssh keygen",
3464
+ "generate ssh key",
3465
+ "authorized keys",
3466
+ "ssh keys",
3467
+ "list ssh keys"
3468
+ ],
3469
+ "fields": {
3470
+ "action": {
3471
+ "type": "string",
3472
+ "required": false,
3473
+ "default": "list"
3474
+ },
3475
+ "environment": {
3476
+ "type": "environment",
3477
+ "required": false,
3478
+ "default": "dev"
3479
+ }
3480
+ },
3481
+ "command": "echo 'Authorized keys:' && cat ~/.ssh/authorized_keys 2>/dev/null | wc -l && echo 'keys' && echo '' && ls -la ~/.ssh/ 2>/dev/null",
3482
+ "execution": "remote",
3483
+ "requiresConfirmation": false,
3484
+ "riskLevel": "low",
3485
+ "examples": [
3486
+ "list ssh keys on prod",
3487
+ "show authorized keys on staging"
3488
+ ]
3489
+ },
3490
+ {
3491
+ "name": "cert.check",
3492
+ "description": "Check an SSL certificate for a domain or file",
3493
+ "synonyms": [
3494
+ "check certificate",
3495
+ "check ssl",
3496
+ "ssl cert",
3497
+ "cert info",
3498
+ "certificate expiry",
3499
+ "openssl check",
3500
+ "cert check"
3501
+ ],
3502
+ "fields": {
3503
+ "target": {
3504
+ "type": "string",
3505
+ "required": true
3506
+ },
3507
+ "environment": {
3508
+ "type": "environment",
3509
+ "required": false,
3510
+ "default": "dev"
3511
+ }
3512
+ },
3513
+ "command": "echo | openssl s_client -connect {{target}}:443 -servername {{target}} 2>/dev/null | openssl x509 -noout -subject -issuer -dates -fingerprint 2>/dev/null || openssl x509 -in {{target}} -noout -subject -issuer -dates 2>/dev/null || echo 'Could not check certificate'",
3514
+ "execution": "remote",
3515
+ "requiresConfirmation": false,
3516
+ "riskLevel": "low",
3517
+ "examples": [
3518
+ "check ssl for example.com",
3519
+ "cert info google.com on prod",
3520
+ "certificate expiry for mysite.io"
3521
+ ]
3522
+ },
3523
+ {
3524
+ "name": "cert.generate",
3525
+ "description": "Generate a self-signed SSL certificate",
3526
+ "synonyms": [
3527
+ "generate certificate",
3528
+ "create ssl cert",
3529
+ "self signed cert",
3530
+ "openssl genrsa",
3531
+ "generate ssl"
3532
+ ],
3533
+ "fields": {
3534
+ "domain": {
3535
+ "type": "string",
3536
+ "required": true
3537
+ },
3538
+ "path": {
3539
+ "type": "string",
3540
+ "required": false,
3541
+ "default": "/etc/ssl"
3542
+ },
3543
+ "environment": {
3544
+ "type": "environment",
3545
+ "required": false,
3546
+ "default": "dev"
3547
+ }
3548
+ },
3549
+ "command": "sudo openssl req -x509 -nodes -days 365 -newkey rsa:2048 -keyout {{path}}/private/{{domain}}.key -out {{path}}/certs/{{domain}}.crt -subj '/CN={{domain}}' && echo 'Certificate generated for {{domain}}'",
3550
+ "execution": "remote",
3551
+ "requiresConfirmation": true,
3552
+ "riskLevel": "medium",
3553
+ "examples": [
3554
+ "generate ssl cert for example.com on prod",
3555
+ "create self signed cert for mysite.io"
3556
+ ]
3557
+ },
3558
+ {
3559
+ "name": "db.pg_dump",
3560
+ "description": "Backup a PostgreSQL database",
3561
+ "synonyms": [
3562
+ "pg_dump",
3563
+ "dump postgres",
3564
+ "backup database",
3565
+ "backup postgres",
3566
+ "postgres dump",
3567
+ "export database"
3568
+ ],
3569
+ "fields": {
3570
+ "database": {
3571
+ "type": "string",
3572
+ "required": true
3573
+ },
3574
+ "destination": {
3575
+ "type": "string",
3576
+ "required": false,
3577
+ "default": "/backup"
3578
+ },
3579
+ "environment": {
3580
+ "type": "environment",
3581
+ "required": false,
3582
+ "default": "dev"
3583
+ }
3584
+ },
3585
+ "command": "pg_dump {{database}} | gzip > {{destination}}/{{database}}-$(date +%Y%m%d-%H%M%S).sql.gz && echo 'Dump complete'",
3586
+ "execution": "remote",
3587
+ "requiresConfirmation": true,
3588
+ "riskLevel": "medium",
3589
+ "examples": [
3590
+ "dump postgres mydb on prod",
3591
+ "backup database myapp to /backup on staging"
3592
+ ]
3593
+ },
3594
+ {
3595
+ "name": "db.pg_restore",
3596
+ "description": "Restore a PostgreSQL database from dump",
3597
+ "synonyms": [
3598
+ "pg_restore",
3599
+ "restore postgres",
3600
+ "restore database",
3601
+ "import database",
3602
+ "load database"
3603
+ ],
3604
+ "fields": {
3605
+ "source": {
3606
+ "type": "string",
3607
+ "required": true
3608
+ },
3609
+ "database": {
3610
+ "type": "string",
3611
+ "required": true
3612
+ },
3613
+ "environment": {
3614
+ "type": "environment",
3615
+ "required": false,
3616
+ "default": "dev"
3617
+ }
3618
+ },
3619
+ "command": "gunzip -c {{source}} | psql {{database}} && echo 'Restore complete'",
3620
+ "execution": "remote",
3621
+ "requiresConfirmation": true,
3622
+ "riskLevel": "high",
3623
+ "fuzzyResolve": [
3624
+ "source"
3625
+ ],
3626
+ "examples": [
3627
+ "restore postgres mydb from /backup/mydb-dump.sql.gz on staging"
3628
+ ]
3629
+ },
3630
+ {
3631
+ "name": "db.mysql_dump",
3632
+ "description": "Backup a MySQL/MariaDB database",
3633
+ "synonyms": [
3634
+ "mysqldump",
3635
+ "dump mysql",
3636
+ "backup mysql",
3637
+ "mysql dump",
3638
+ "export mysql"
3639
+ ],
3640
+ "fields": {
3641
+ "database": {
3642
+ "type": "string",
3643
+ "required": true
3644
+ },
3645
+ "destination": {
3646
+ "type": "string",
3647
+ "required": false,
3648
+ "default": "/backup"
3649
+ },
3650
+ "environment": {
3651
+ "type": "environment",
3652
+ "required": false,
3653
+ "default": "dev"
3654
+ }
3655
+ },
3656
+ "command": "mysqldump {{database}} | gzip > {{destination}}/{{database}}-$(date +%Y%m%d-%H%M%S).sql.gz && echo 'Dump complete'",
3657
+ "execution": "remote",
3658
+ "requiresConfirmation": true,
3659
+ "riskLevel": "medium",
3660
+ "examples": [
3661
+ "dump mysql mydb on prod",
3662
+ "backup mysql database on staging"
3663
+ ]
3664
+ },
3665
+ {
3666
+ "name": "db.redis_cli",
3667
+ "description": "Run Redis CLI commands",
3668
+ "synonyms": [
3669
+ "redis-cli",
3670
+ "redis cli",
3671
+ "redis command",
3672
+ "redis info",
3673
+ "redis ping"
3674
+ ],
3675
+ "fields": {
3676
+ "command": {
3677
+ "type": "string",
3678
+ "required": false,
3679
+ "default": "info"
3680
+ },
3681
+ "environment": {
3682
+ "type": "environment",
3683
+ "required": false,
3684
+ "default": "dev"
3685
+ }
3686
+ },
3687
+ "command": "redis-cli {{command}}",
3688
+ "execution": "remote",
3689
+ "requiresConfirmation": false,
3690
+ "riskLevel": "low",
3691
+ "examples": [
3692
+ "redis info on prod",
3693
+ "redis-cli ping on staging",
3694
+ "redis cli dbsize on prod"
3695
+ ]
3696
+ },
3697
+ {
3698
+ "name": "network.ip",
3699
+ "description": "Show network interfaces and IP addresses",
3700
+ "synonyms": [
3701
+ "ip addr",
3702
+ "ifconfig",
3703
+ "show ip",
3704
+ "ip address",
3705
+ "network interfaces",
3706
+ "my ip",
3707
+ "what is my ip"
3708
+ ],
3709
+ "fields": {
3710
+ "environment": {
3711
+ "type": "environment",
3712
+ "required": false,
3713
+ "default": "dev"
3714
+ }
3715
+ },
3716
+ "command": "ip addr show 2>/dev/null || ifconfig 2>/dev/null",
3717
+ "execution": "remote",
3718
+ "requiresConfirmation": false,
3719
+ "riskLevel": "low",
3720
+ "examples": [
3721
+ "show ip on prod",
3722
+ "ip addr on staging",
3723
+ "what is my ip on prod"
3724
+ ]
3725
+ },
3726
+ {
3727
+ "name": "network.route",
3728
+ "description": "Show routing table",
3729
+ "synonyms": [
3730
+ "route",
3731
+ "routing table",
3732
+ "ip route",
3733
+ "show routes",
3734
+ "netstat -r"
3735
+ ],
3736
+ "fields": {
3737
+ "environment": {
3738
+ "type": "environment",
3739
+ "required": false,
3740
+ "default": "dev"
3741
+ }
3742
+ },
3743
+ "command": "ip route show 2>/dev/null || route -n 2>/dev/null",
3744
+ "execution": "remote",
3745
+ "requiresConfirmation": false,
3746
+ "riskLevel": "low",
3747
+ "examples": [
3748
+ "show routes on prod",
3749
+ "routing table on staging"
3750
+ ]
3751
+ },
3752
+ {
3753
+ "name": "network.connections",
3754
+ "description": "Show active network connections",
3755
+ "synonyms": [
3756
+ "connections",
3757
+ "active connections",
3758
+ "netstat",
3759
+ "established connections",
3760
+ "who is connected"
3761
+ ],
3762
+ "fields": {
3763
+ "environment": {
3764
+ "type": "environment",
3765
+ "required": false,
3766
+ "default": "dev"
3767
+ }
3768
+ },
3769
+ "command": "ss -tunap | head -30 2>/dev/null || netstat -tunap | head -30",
3770
+ "execution": "remote",
3771
+ "requiresConfirmation": false,
3772
+ "riskLevel": "low",
3773
+ "examples": [
3774
+ "show connections on prod",
3775
+ "active connections on staging",
3776
+ "who is connected to prod"
3777
+ ]
3778
+ },
3779
+ {
3780
+ "name": "network.scp",
3781
+ "description": "Securely copy files between hosts",
3782
+ "synonyms": [
3783
+ "scp",
3784
+ "secure copy",
3785
+ "scp to",
3786
+ "scp from",
3787
+ "copy to remote",
3788
+ "copy from remote"
3789
+ ],
3790
+ "fields": {
3791
+ "source": {
3792
+ "type": "string",
3793
+ "required": true
3794
+ },
3795
+ "destination": {
3796
+ "type": "string",
3797
+ "required": true
3798
+ }
3799
+ },
3800
+ "command": "scp -r {{source}} {{destination}}",
3801
+ "execution": "local",
3802
+ "requiresConfirmation": true,
3803
+ "riskLevel": "medium",
3804
+ "examples": [
3805
+ "scp /tmp/backup.tar.gz to user@prod:/backup/",
3806
+ "secure copy config.yml to staging:/etc/app/"
3807
+ ]
3808
+ },
3809
+ {
3810
+ "name": "network.bandwidth",
3811
+ "description": "Check network bandwidth and usage",
3812
+ "synonyms": [
3813
+ "bandwidth",
3814
+ "network usage",
3815
+ "nethogs",
3816
+ "iftop",
3817
+ "network speed"
3818
+ ],
3819
+ "fields": {
3820
+ "environment": {
3821
+ "type": "environment",
3822
+ "required": false,
3823
+ "default": "dev"
3824
+ }
3825
+ },
3826
+ "command": "cat /proc/net/dev && echo '' && ip -s link 2>/dev/null | head -30",
3827
+ "execution": "remote",
3828
+ "requiresConfirmation": false,
3829
+ "riskLevel": "low",
3830
+ "examples": [
3831
+ "bandwidth on prod",
3832
+ "network usage on staging"
3833
+ ]
3834
+ },
3835
+ {
3836
+ "name": "llm.ask",
3837
+ "description": "Ask an LLM (Claude or ChatGPT) a question",
3838
+ "synonyms": [
3839
+ "ask claude",
3840
+ "ask chatgpt",
3841
+ "ask ai",
3842
+ "ask llm",
3843
+ "claude",
3844
+ "chatgpt",
3845
+ "ai help"
3846
+ ],
3847
+ "fields": {
3848
+ "prompt": {
3849
+ "type": "string",
3850
+ "required": true
3851
+ },
3852
+ "model": {
3853
+ "type": "string",
3854
+ "required": false,
3855
+ "default": "claude"
3856
+ }
3857
+ },
3858
+ "command": "echo 'LLM query'",
3859
+ "execution": "local",
3860
+ "requiresConfirmation": false,
3861
+ "riskLevel": "low",
3862
+ "examples": [
3863
+ "ask claude how to set up nginx reverse proxy",
3864
+ "ask chatgpt explain iptables",
3865
+ "ask ai about load balancing"
3866
+ ]
3867
+ },
3868
+ {
3869
+ "name": "llm.claude_cli",
3870
+ "description": "Run a command through Claude CLI",
3871
+ "synonyms": [
3872
+ "claude cli",
3873
+ "run claude",
3874
+ "claude code",
3875
+ "use claude"
3876
+ ],
3877
+ "fields": {
3878
+ "prompt": {
3879
+ "type": "string",
3880
+ "required": true
3881
+ }
3882
+ },
3883
+ "command": "claude -p '{{prompt}}'",
3884
+ "execution": "local",
3885
+ "requiresConfirmation": false,
3886
+ "riskLevel": "low",
3887
+ "examples": [
3888
+ "claude cli explain this error",
3889
+ "run claude to review my config"
3890
+ ]
3891
+ },
3892
+ {
3893
+ "name": "llm.convex",
3894
+ "description": "Run Convex CLI commands",
3895
+ "synonyms": [
3896
+ "convex",
3897
+ "convex cli",
3898
+ "convex deploy",
3899
+ "convex dev",
3900
+ "convex run"
3901
+ ],
3902
+ "fields": {
3903
+ "action": {
3904
+ "type": "string",
3905
+ "required": false,
3906
+ "default": "dev"
3907
+ }
3908
+ },
3909
+ "command": "npx convex {{action}}",
3910
+ "execution": "local",
3911
+ "requiresConfirmation": false,
3912
+ "riskLevel": "low",
3913
+ "examples": [
3914
+ "convex dev",
3915
+ "convex deploy",
3916
+ "convex run"
3917
+ ]
3918
+ }
3919
+ ]
3920
+ }