@gaunt-sloth/core 2.0.0-alpha.23 → 2.0.0-alpha.25

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 (154) hide show
  1. package/README.md +43 -18
  2. package/dist/config/colour.d.ts +38 -0
  3. package/dist/config/colour.js +36 -0
  4. package/dist/config/colour.js.map +1 -0
  5. package/dist/config/defaults.d.ts +6 -7
  6. package/dist/config/defaults.js +4 -8
  7. package/dist/config/defaults.js.map +1 -1
  8. package/dist/config/loader.d.ts +50 -3
  9. package/dist/config/loader.js +345 -29
  10. package/dist/config/loader.js.map +1 -1
  11. package/dist/config/mouse.d.ts +50 -0
  12. package/dist/config/mouse.js +44 -0
  13. package/dist/config/mouse.js.map +1 -0
  14. package/dist/config/profiles.d.ts +68 -0
  15. package/dist/config/profiles.js +93 -0
  16. package/dist/config/profiles.js.map +1 -0
  17. package/dist/config/schema.d.ts +2441 -116
  18. package/dist/config/schema.js +930 -19
  19. package/dist/config/schema.js.map +1 -1
  20. package/dist/config/shell-policy.d.ts +466 -116
  21. package/dist/config/shell-policy.js +273 -62
  22. package/dist/config/shell-policy.js.map +1 -1
  23. package/dist/config/tool-descriptions.d.ts +165 -0
  24. package/dist/config/tool-descriptions.js +229 -0
  25. package/dist/config/tool-descriptions.js.map +1 -0
  26. package/dist/config/types.d.ts +139 -6
  27. package/dist/config/types.js.map +1 -1
  28. package/dist/config.d.ts +4 -0
  29. package/dist/config.js +4 -0
  30. package/dist/config.js.map +1 -1
  31. package/dist/core/GthAbstractAgent.d.ts +85 -2
  32. package/dist/core/GthAbstractAgent.js +194 -1
  33. package/dist/core/GthAbstractAgent.js.map +1 -1
  34. package/dist/core/GthAgentRunner.d.ts +341 -58
  35. package/dist/core/GthAgentRunner.js +857 -149
  36. package/dist/core/GthAgentRunner.js.map +1 -1
  37. package/dist/core/GthLangChainAgent.d.ts +99 -0
  38. package/dist/core/GthLangChainAgent.js +388 -3
  39. package/dist/core/GthLangChainAgent.js.map +1 -1
  40. package/dist/core/approvals/annotations.d.ts +122 -0
  41. package/dist/core/approvals/annotations.js +137 -0
  42. package/dist/core/approvals/annotations.js.map +1 -0
  43. package/dist/core/approvals/grants.d.ts +216 -0
  44. package/dist/core/approvals/grants.js +469 -0
  45. package/dist/core/approvals/grants.js.map +1 -0
  46. package/dist/core/approvals/matcher.d.ts +202 -0
  47. package/dist/core/approvals/matcher.js +267 -0
  48. package/dist/core/approvals/matcher.js.map +1 -0
  49. package/dist/core/approvals/mcpSubjects.d.ts +40 -0
  50. package/dist/core/approvals/mcpSubjects.js +99 -0
  51. package/dist/core/approvals/mcpSubjects.js.map +1 -0
  52. package/dist/core/approvals/toolAnnotationSources.d.ts +105 -0
  53. package/dist/core/approvals/toolAnnotationSources.js +277 -0
  54. package/dist/core/approvals/toolAnnotationSources.js.map +1 -0
  55. package/dist/core/approvals/toolHost.d.ts +46 -0
  56. package/dist/core/approvals/toolHost.js +108 -0
  57. package/dist/core/approvals/toolHost.js.map +1 -0
  58. package/dist/core/debugCapture.d.ts +16 -0
  59. package/dist/core/debugCapture.js.map +1 -1
  60. package/dist/core/launchBanner.d.ts +120 -0
  61. package/dist/core/launchBanner.js +399 -0
  62. package/dist/core/launchBanner.js.map +1 -0
  63. package/dist/core/plainToolIndication.js +61 -35
  64. package/dist/core/plainToolIndication.js.map +1 -1
  65. package/dist/core/refusal.d.ts +53 -0
  66. package/dist/core/refusal.js +129 -0
  67. package/dist/core/refusal.js.map +1 -0
  68. package/dist/core/shell/approvalStop.d.ts +75 -0
  69. package/dist/core/shell/approvalStop.js +108 -0
  70. package/dist/core/shell/approvalStop.js.map +1 -0
  71. package/dist/core/shell/arity.d.ts +6 -0
  72. package/dist/core/shell/arity.js +20 -6
  73. package/dist/core/shell/arity.js.map +1 -1
  74. package/dist/core/shell/denylist.d.ts +11 -0
  75. package/dist/core/shell/denylist.js +37 -0
  76. package/dist/core/shell/denylist.js.map +1 -0
  77. package/dist/core/shell/normalize.d.ts +41 -1
  78. package/dist/core/shell/normalize.js +58 -4
  79. package/dist/core/shell/normalize.js.map +1 -1
  80. package/dist/core/shell/openWorld.d.ts +138 -0
  81. package/dist/core/shell/openWorld.js +523 -0
  82. package/dist/core/shell/openWorld.js.map +1 -0
  83. package/dist/core/shell/rater.d.ts +560 -0
  84. package/dist/core/shell/rater.js +895 -0
  85. package/dist/core/shell/rater.js.map +1 -0
  86. package/dist/core/shell/raterModel.d.ts +41 -0
  87. package/dist/core/shell/raterModel.js +51 -0
  88. package/dist/core/shell/raterModel.js.map +1 -0
  89. package/dist/core/shell/rejection.d.ts +66 -0
  90. package/dist/core/shell/rejection.js +38 -0
  91. package/dist/core/shell/rejection.js.map +1 -0
  92. package/dist/core/toolCallRepair/grammar.d.ts +41 -0
  93. package/dist/core/toolCallRepair/grammar.js +116 -0
  94. package/dist/core/toolCallRepair/grammar.js.map +1 -0
  95. package/dist/core/toolCallRepair/index.d.ts +2 -0
  96. package/dist/core/toolCallRepair/index.js +7 -0
  97. package/dist/core/toolCallRepair/index.js.map +1 -0
  98. package/dist/core/toolCallRepair/payload.d.ts +36 -0
  99. package/dist/core/toolCallRepair/payload.js +341 -0
  100. package/dist/core/toolCallRepair/payload.js.map +1 -0
  101. package/dist/core/toolCallRepair/promote.d.ts +45 -0
  102. package/dist/core/toolCallRepair/promote.js +90 -0
  103. package/dist/core/toolCallRepair/promote.js.map +1 -0
  104. package/dist/core/toolDisplay.d.ts +14 -1
  105. package/dist/core/toolDisplay.js +69 -12
  106. package/dist/core/toolDisplay.js.map +1 -1
  107. package/dist/core/toolOutputChannel.d.ts +33 -6
  108. package/dist/core/toolOutputChannel.js +61 -8
  109. package/dist/core/toolOutputChannel.js.map +1 -1
  110. package/dist/core/types.d.ts +71 -9
  111. package/dist/core/types.js.map +1 -1
  112. package/dist/providers/geminiSchemaSanitizer.d.ts +6 -3
  113. package/dist/providers/geminiSchemaSanitizer.js +152 -6
  114. package/dist/providers/geminiSchemaSanitizer.js.map +1 -1
  115. package/dist/providers/modelDiscovery.d.ts +18 -4
  116. package/dist/providers/modelDiscovery.js +67 -17
  117. package/dist/providers/modelDiscovery.js.map +1 -1
  118. package/dist/providers/openai.js +34 -0
  119. package/dist/providers/openai.js.map +1 -1
  120. package/dist/runtime/askStructured.d.ts +8 -7
  121. package/dist/runtime/askStructured.js +8 -7
  122. package/dist/runtime/askStructured.js.map +1 -1
  123. package/dist/runtime/conversation.js +89 -76
  124. package/dist/runtime/conversation.js.map +1 -1
  125. package/dist/runtime/singleShot.js +71 -60
  126. package/dist/runtime/singleShot.js.map +1 -1
  127. package/dist/utils/ProgressIndicator.d.ts +21 -0
  128. package/dist/utils/ProgressIndicator.js +30 -3
  129. package/dist/utils/ProgressIndicator.js.map +1 -1
  130. package/dist/utils/consoleUtils.d.ts +30 -0
  131. package/dist/utils/consoleUtils.js +27 -2
  132. package/dist/utils/consoleUtils.js.map +1 -1
  133. package/dist/utils/crashHandler.d.ts +87 -0
  134. package/dist/utils/crashHandler.js +128 -0
  135. package/dist/utils/crashHandler.js.map +1 -0
  136. package/dist/utils/debugDump.d.ts +58 -0
  137. package/dist/utils/debugDump.js +149 -15
  138. package/dist/utils/debugDump.js.map +1 -1
  139. package/dist/utils/llmUtils.d.ts +22 -8
  140. package/dist/utils/llmUtils.js +48 -8
  141. package/dist/utils/llmUtils.js.map +1 -1
  142. package/dist/utils/redactSecrets.js +68 -20
  143. package/dist/utils/redactSecrets.js.map +1 -1
  144. package/dist/utils/systemUtils.d.ts +17 -0
  145. package/dist/utils/systemUtils.js +17 -0
  146. package/dist/utils/systemUtils.js.map +1 -1
  147. package/package.json +5 -2
  148. package/schema/gsloth-config.schema.json +1484 -466
  149. package/dist/core/shell/allowlist.d.ts +0 -75
  150. package/dist/core/shell/allowlist.js +0 -187
  151. package/dist/core/shell/allowlist.js.map +0 -1
  152. package/dist/core/shell/judge.d.ts +0 -161
  153. package/dist/core/shell/judge.js +0 -261
  154. package/dist/core/shell/judge.js.map +0 -1
@@ -27,6 +27,9 @@
27
27
  },
28
28
  "additionalProperties": {}
29
29
  },
30
+ "extends": {
31
+ "type": "string"
32
+ },
30
33
  "agent": {
31
34
  "type": "object",
32
35
  "properties": {
@@ -126,8 +129,185 @@
126
129
  },
127
130
  "additionalProperties": {}
128
131
  },
129
- "projectGuidelines": {
130
- "type": "string"
132
+ "prompts": {
133
+ "type": "object",
134
+ "properties": {
135
+ "backstory": {
136
+ "anyOf": [
137
+ {
138
+ "type": "string"
139
+ },
140
+ {
141
+ "type": "object",
142
+ "properties": {
143
+ "path": {
144
+ "type": "string"
145
+ },
146
+ "enabled": {
147
+ "type": "boolean"
148
+ },
149
+ "mode": {
150
+ "type": "string",
151
+ "enum": [
152
+ "replace",
153
+ "append"
154
+ ]
155
+ }
156
+ }
157
+ }
158
+ ]
159
+ },
160
+ "guidelines": {
161
+ "anyOf": [
162
+ {
163
+ "type": "string"
164
+ },
165
+ {
166
+ "type": "object",
167
+ "properties": {
168
+ "path": {
169
+ "type": "string"
170
+ },
171
+ "enabled": {
172
+ "type": "boolean"
173
+ },
174
+ "mode": {
175
+ "type": "string",
176
+ "enum": [
177
+ "replace",
178
+ "append"
179
+ ]
180
+ }
181
+ }
182
+ }
183
+ ]
184
+ },
185
+ "system": {
186
+ "anyOf": [
187
+ {
188
+ "type": "string"
189
+ },
190
+ {
191
+ "type": "object",
192
+ "properties": {
193
+ "path": {
194
+ "type": "string"
195
+ },
196
+ "enabled": {
197
+ "type": "boolean"
198
+ },
199
+ "mode": {
200
+ "type": "string",
201
+ "enum": [
202
+ "replace",
203
+ "append"
204
+ ]
205
+ }
206
+ }
207
+ }
208
+ ]
209
+ },
210
+ "chat": {
211
+ "anyOf": [
212
+ {
213
+ "type": "string"
214
+ },
215
+ {
216
+ "type": "object",
217
+ "properties": {
218
+ "path": {
219
+ "type": "string"
220
+ },
221
+ "enabled": {
222
+ "type": "boolean"
223
+ },
224
+ "mode": {
225
+ "type": "string",
226
+ "enum": [
227
+ "replace",
228
+ "append"
229
+ ]
230
+ }
231
+ }
232
+ }
233
+ ]
234
+ },
235
+ "code": {
236
+ "anyOf": [
237
+ {
238
+ "type": "string"
239
+ },
240
+ {
241
+ "type": "object",
242
+ "properties": {
243
+ "path": {
244
+ "type": "string"
245
+ },
246
+ "enabled": {
247
+ "type": "boolean"
248
+ },
249
+ "mode": {
250
+ "type": "string",
251
+ "enum": [
252
+ "replace",
253
+ "append"
254
+ ]
255
+ }
256
+ }
257
+ }
258
+ ]
259
+ },
260
+ "exec": {
261
+ "anyOf": [
262
+ {
263
+ "type": "string"
264
+ },
265
+ {
266
+ "type": "object",
267
+ "properties": {
268
+ "path": {
269
+ "type": "string"
270
+ },
271
+ "enabled": {
272
+ "type": "boolean"
273
+ },
274
+ "mode": {
275
+ "type": "string",
276
+ "enum": [
277
+ "replace",
278
+ "append"
279
+ ]
280
+ }
281
+ }
282
+ }
283
+ ]
284
+ },
285
+ "review": {
286
+ "anyOf": [
287
+ {
288
+ "type": "string"
289
+ },
290
+ {
291
+ "type": "object",
292
+ "properties": {
293
+ "path": {
294
+ "type": "string"
295
+ },
296
+ "enabled": {
297
+ "type": "boolean"
298
+ },
299
+ "mode": {
300
+ "type": "string",
301
+ "enum": [
302
+ "replace",
303
+ "append"
304
+ ]
305
+ }
306
+ }
307
+ }
308
+ ]
309
+ }
310
+ }
131
311
  },
132
312
  "identityProfile": {
133
313
  "type": "string"
@@ -149,9 +329,6 @@
149
329
  }
150
330
  }
151
331
  },
152
- "projectReviewInstructions": {
153
- "type": "string"
154
- },
155
332
  "noDefaultPrompts": {
156
333
  "type": "boolean"
157
334
  },
@@ -206,58 +383,6 @@
206
383
  "maxOutputBytes": {
207
384
  "type": "number"
208
385
  },
209
- "allowlist": {
210
- "type": "boolean"
211
- },
212
- "persistAllowlist": {
213
- "type": "boolean"
214
- },
215
- "judge": {
216
- "anyOf": [
217
- {
218
- "type": "boolean"
219
- },
220
- {
221
- "type": "object",
222
- "properties": {
223
- "enabled": {
224
- "type": "boolean"
225
- },
226
- "autoApproveLow": {
227
- "type": "boolean"
228
- },
229
- "blockHigh": {
230
- "type": "boolean"
231
- },
232
- "model": {
233
- "type": "object",
234
- "properties": {
235
- "type": {
236
- "type": "string"
237
- },
238
- "model": {
239
- "type": "string"
240
- },
241
- "configuration": {
242
- "type": "object",
243
- "propertyNames": {
244
- "type": "string"
245
- },
246
- "additionalProperties": {}
247
- },
248
- "apiKeyEnvironmentVariable": {
249
- "type": "string"
250
- }
251
- },
252
- "additionalProperties": {}
253
- }
254
- }
255
- }
256
- ]
257
- },
258
- "yolo": {
259
- "type": "boolean"
260
- },
261
386
  "fileSet": {
262
387
  "type": "string",
263
388
  "enum": [
@@ -272,6 +397,110 @@
272
397
  }
273
398
  ]
274
399
  },
400
+ "approvals": {
401
+ "anyOf": [
402
+ {
403
+ "type": "string",
404
+ "enum": [
405
+ "read-only",
406
+ "write",
407
+ "auto-safe",
408
+ "full-auto",
409
+ "bypass"
410
+ ]
411
+ },
412
+ {
413
+ "type": "object",
414
+ "properties": {
415
+ "mode": {
416
+ "type": "string",
417
+ "enum": [
418
+ "read-only",
419
+ "write",
420
+ "auto-safe",
421
+ "full-auto",
422
+ "bypass"
423
+ ]
424
+ },
425
+ "rater": {
426
+ "type": "string"
427
+ },
428
+ "allow": {
429
+ "type": "array",
430
+ "items": {
431
+ "$ref": "#/$defs/ApprovalEntry"
432
+ }
433
+ },
434
+ "deny": {
435
+ "type": "array",
436
+ "items": {
437
+ "$ref": "#/$defs/ApprovalEntry"
438
+ }
439
+ },
440
+ "escalate": {
441
+ "type": "array",
442
+ "items": {
443
+ "$ref": "#/$defs/ApprovalEntry"
444
+ }
445
+ },
446
+ "raterTimeoutMs": {
447
+ "type": "integer",
448
+ "minimum": 1,
449
+ "maximum": 9007199254740991
450
+ },
451
+ "mcp": {
452
+ "type": "object",
453
+ "properties": {
454
+ "defaults": {
455
+ "type": "object",
456
+ "properties": {
457
+ "trustAnnotations": {
458
+ "type": "array",
459
+ "items": {
460
+ "type": "string",
461
+ "enum": [
462
+ "readOnlyHint",
463
+ "destructiveHint",
464
+ "idempotentHint",
465
+ "openWorldHint"
466
+ ]
467
+ }
468
+ }
469
+ },
470
+ "additionalProperties": false
471
+ },
472
+ "servers": {
473
+ "type": "object",
474
+ "propertyNames": {
475
+ "type": "string",
476
+ "minLength": 1
477
+ },
478
+ "additionalProperties": {
479
+ "type": "object",
480
+ "properties": {
481
+ "trustAnnotations": {
482
+ "type": "array",
483
+ "items": {
484
+ "type": "string",
485
+ "enum": [
486
+ "readOnlyHint",
487
+ "destructiveHint",
488
+ "idempotentHint",
489
+ "openWorldHint"
490
+ ]
491
+ }
492
+ }
493
+ },
494
+ "additionalProperties": false
495
+ }
496
+ }
497
+ },
498
+ "additionalProperties": false
499
+ }
500
+ }
501
+ }
502
+ ]
503
+ },
275
504
  "tools": {
276
505
  "type": "array",
277
506
  "items": {}
@@ -305,6 +534,9 @@
305
534
  "useColour": {
306
535
  "type": "boolean"
307
536
  },
537
+ "useMouse": {
538
+ "type": "boolean"
539
+ },
308
540
  "streamSessionInferenceLog": {
309
541
  "type": "boolean"
310
542
  },
@@ -492,58 +724,6 @@
492
724
  "maxOutputBytes": {
493
725
  "type": "number"
494
726
  },
495
- "allowlist": {
496
- "type": "boolean"
497
- },
498
- "persistAllowlist": {
499
- "type": "boolean"
500
- },
501
- "judge": {
502
- "anyOf": [
503
- {
504
- "type": "boolean"
505
- },
506
- {
507
- "type": "object",
508
- "properties": {
509
- "enabled": {
510
- "type": "boolean"
511
- },
512
- "autoApproveLow": {
513
- "type": "boolean"
514
- },
515
- "blockHigh": {
516
- "type": "boolean"
517
- },
518
- "model": {
519
- "type": "object",
520
- "properties": {
521
- "type": {
522
- "type": "string"
523
- },
524
- "model": {
525
- "type": "string"
526
- },
527
- "configuration": {
528
- "type": "object",
529
- "propertyNames": {
530
- "type": "string"
531
- },
532
- "additionalProperties": {}
533
- },
534
- "apiKeyEnvironmentVariable": {
535
- "type": "string"
536
- }
537
- },
538
- "additionalProperties": {}
539
- }
540
- }
541
- }
542
- ]
543
- },
544
- "yolo": {
545
- "type": "boolean"
546
- },
547
727
  "fileSet": {
548
728
  "type": "string",
549
729
  "enum": [
@@ -558,36 +738,140 @@
558
738
  }
559
739
  ]
560
740
  },
561
- "customTools": {
741
+ "approvals": {
562
742
  "anyOf": [
563
743
  {
564
- "type": "boolean",
565
- "const": false
744
+ "type": "string",
745
+ "enum": [
746
+ "read-only",
747
+ "write",
748
+ "auto-safe",
749
+ "full-auto",
750
+ "bypass"
751
+ ]
566
752
  },
567
753
  {
568
754
  "type": "object",
569
- "propertyNames": {
570
- "type": "string"
571
- },
572
- "additionalProperties": {
573
- "type": "object",
574
- "properties": {
575
- "command": {
576
- "type": "string"
577
- },
578
- "description": {
579
- "type": "string"
580
- },
581
- "parameters": {
582
- "type": "object",
583
- "propertyNames": {
584
- "type": "string"
585
- },
586
- "additionalProperties": {
587
- "type": "object",
588
- "properties": {
589
- "description": {
590
- "type": "string"
755
+ "properties": {
756
+ "mode": {
757
+ "type": "string",
758
+ "enum": [
759
+ "read-only",
760
+ "write",
761
+ "auto-safe",
762
+ "full-auto",
763
+ "bypass"
764
+ ]
765
+ },
766
+ "rater": {
767
+ "type": "string"
768
+ },
769
+ "allow": {
770
+ "type": "array",
771
+ "items": {
772
+ "$ref": "#/$defs/ApprovalEntry"
773
+ }
774
+ },
775
+ "deny": {
776
+ "type": "array",
777
+ "items": {
778
+ "$ref": "#/$defs/ApprovalEntry"
779
+ }
780
+ },
781
+ "escalate": {
782
+ "type": "array",
783
+ "items": {
784
+ "$ref": "#/$defs/ApprovalEntry"
785
+ }
786
+ },
787
+ "raterTimeoutMs": {
788
+ "type": "integer",
789
+ "minimum": 1,
790
+ "maximum": 9007199254740991
791
+ },
792
+ "mcp": {
793
+ "type": "object",
794
+ "properties": {
795
+ "defaults": {
796
+ "type": "object",
797
+ "properties": {
798
+ "trustAnnotations": {
799
+ "type": "array",
800
+ "items": {
801
+ "type": "string",
802
+ "enum": [
803
+ "readOnlyHint",
804
+ "destructiveHint",
805
+ "idempotentHint",
806
+ "openWorldHint"
807
+ ]
808
+ }
809
+ }
810
+ },
811
+ "additionalProperties": false
812
+ },
813
+ "servers": {
814
+ "type": "object",
815
+ "propertyNames": {
816
+ "type": "string",
817
+ "minLength": 1
818
+ },
819
+ "additionalProperties": {
820
+ "type": "object",
821
+ "properties": {
822
+ "trustAnnotations": {
823
+ "type": "array",
824
+ "items": {
825
+ "type": "string",
826
+ "enum": [
827
+ "readOnlyHint",
828
+ "destructiveHint",
829
+ "idempotentHint",
830
+ "openWorldHint"
831
+ ]
832
+ }
833
+ }
834
+ },
835
+ "additionalProperties": false
836
+ }
837
+ }
838
+ },
839
+ "additionalProperties": false
840
+ }
841
+ }
842
+ }
843
+ ]
844
+ },
845
+ "customTools": {
846
+ "anyOf": [
847
+ {
848
+ "type": "boolean",
849
+ "const": false
850
+ },
851
+ {
852
+ "type": "object",
853
+ "propertyNames": {
854
+ "type": "string"
855
+ },
856
+ "additionalProperties": {
857
+ "type": "object",
858
+ "properties": {
859
+ "command": {
860
+ "type": "string"
861
+ },
862
+ "description": {
863
+ "type": "string"
864
+ },
865
+ "parameters": {
866
+ "type": "object",
867
+ "propertyNames": {
868
+ "type": "string"
869
+ },
870
+ "additionalProperties": {
871
+ "type": "object",
872
+ "properties": {
873
+ "description": {
874
+ "type": "string"
591
875
  },
592
876
  "allow": {
593
877
  "type": "array",
@@ -758,58 +1042,6 @@
758
1042
  "maxOutputBytes": {
759
1043
  "type": "number"
760
1044
  },
761
- "allowlist": {
762
- "type": "boolean"
763
- },
764
- "persistAllowlist": {
765
- "type": "boolean"
766
- },
767
- "judge": {
768
- "anyOf": [
769
- {
770
- "type": "boolean"
771
- },
772
- {
773
- "type": "object",
774
- "properties": {
775
- "enabled": {
776
- "type": "boolean"
777
- },
778
- "autoApproveLow": {
779
- "type": "boolean"
780
- },
781
- "blockHigh": {
782
- "type": "boolean"
783
- },
784
- "model": {
785
- "type": "object",
786
- "properties": {
787
- "type": {
788
- "type": "string"
789
- },
790
- "model": {
791
- "type": "string"
792
- },
793
- "configuration": {
794
- "type": "object",
795
- "propertyNames": {
796
- "type": "string"
797
- },
798
- "additionalProperties": {}
799
- },
800
- "apiKeyEnvironmentVariable": {
801
- "type": "string"
802
- }
803
- },
804
- "additionalProperties": {}
805
- }
806
- }
807
- }
808
- ]
809
- },
810
- "yolo": {
811
- "type": "boolean"
812
- },
813
1045
  "fileSet": {
814
1046
  "type": "string",
815
1047
  "enum": [
@@ -824,6 +1056,110 @@
824
1056
  }
825
1057
  ]
826
1058
  },
1059
+ "approvals": {
1060
+ "anyOf": [
1061
+ {
1062
+ "type": "string",
1063
+ "enum": [
1064
+ "read-only",
1065
+ "write",
1066
+ "auto-safe",
1067
+ "full-auto",
1068
+ "bypass"
1069
+ ]
1070
+ },
1071
+ {
1072
+ "type": "object",
1073
+ "properties": {
1074
+ "mode": {
1075
+ "type": "string",
1076
+ "enum": [
1077
+ "read-only",
1078
+ "write",
1079
+ "auto-safe",
1080
+ "full-auto",
1081
+ "bypass"
1082
+ ]
1083
+ },
1084
+ "rater": {
1085
+ "type": "string"
1086
+ },
1087
+ "allow": {
1088
+ "type": "array",
1089
+ "items": {
1090
+ "$ref": "#/$defs/ApprovalEntry"
1091
+ }
1092
+ },
1093
+ "deny": {
1094
+ "type": "array",
1095
+ "items": {
1096
+ "$ref": "#/$defs/ApprovalEntry"
1097
+ }
1098
+ },
1099
+ "escalate": {
1100
+ "type": "array",
1101
+ "items": {
1102
+ "$ref": "#/$defs/ApprovalEntry"
1103
+ }
1104
+ },
1105
+ "raterTimeoutMs": {
1106
+ "type": "integer",
1107
+ "minimum": 1,
1108
+ "maximum": 9007199254740991
1109
+ },
1110
+ "mcp": {
1111
+ "type": "object",
1112
+ "properties": {
1113
+ "defaults": {
1114
+ "type": "object",
1115
+ "properties": {
1116
+ "trustAnnotations": {
1117
+ "type": "array",
1118
+ "items": {
1119
+ "type": "string",
1120
+ "enum": [
1121
+ "readOnlyHint",
1122
+ "destructiveHint",
1123
+ "idempotentHint",
1124
+ "openWorldHint"
1125
+ ]
1126
+ }
1127
+ }
1128
+ },
1129
+ "additionalProperties": false
1130
+ },
1131
+ "servers": {
1132
+ "type": "object",
1133
+ "propertyNames": {
1134
+ "type": "string",
1135
+ "minLength": 1
1136
+ },
1137
+ "additionalProperties": {
1138
+ "type": "object",
1139
+ "properties": {
1140
+ "trustAnnotations": {
1141
+ "type": "array",
1142
+ "items": {
1143
+ "type": "string",
1144
+ "enum": [
1145
+ "readOnlyHint",
1146
+ "destructiveHint",
1147
+ "idempotentHint",
1148
+ "openWorldHint"
1149
+ ]
1150
+ }
1151
+ }
1152
+ },
1153
+ "additionalProperties": false
1154
+ }
1155
+ }
1156
+ },
1157
+ "additionalProperties": false
1158
+ }
1159
+ }
1160
+ }
1161
+ ]
1162
+ },
827
1163
  "customTools": {
828
1164
  "anyOf": [
829
1165
  {
@@ -1015,58 +1351,6 @@
1015
1351
  "maxOutputBytes": {
1016
1352
  "type": "number"
1017
1353
  },
1018
- "allowlist": {
1019
- "type": "boolean"
1020
- },
1021
- "persistAllowlist": {
1022
- "type": "boolean"
1023
- },
1024
- "judge": {
1025
- "anyOf": [
1026
- {
1027
- "type": "boolean"
1028
- },
1029
- {
1030
- "type": "object",
1031
- "properties": {
1032
- "enabled": {
1033
- "type": "boolean"
1034
- },
1035
- "autoApproveLow": {
1036
- "type": "boolean"
1037
- },
1038
- "blockHigh": {
1039
- "type": "boolean"
1040
- },
1041
- "model": {
1042
- "type": "object",
1043
- "properties": {
1044
- "type": {
1045
- "type": "string"
1046
- },
1047
- "model": {
1048
- "type": "string"
1049
- },
1050
- "configuration": {
1051
- "type": "object",
1052
- "propertyNames": {
1053
- "type": "string"
1054
- },
1055
- "additionalProperties": {}
1056
- },
1057
- "apiKeyEnvironmentVariable": {
1058
- "type": "string"
1059
- }
1060
- },
1061
- "additionalProperties": {}
1062
- }
1063
- }
1064
- }
1065
- ]
1066
- },
1067
- "yolo": {
1068
- "type": "boolean"
1069
- },
1070
1354
  "fileSet": {
1071
1355
  "type": "string",
1072
1356
  "enum": [
@@ -1081,6 +1365,110 @@
1081
1365
  }
1082
1366
  ]
1083
1367
  },
1368
+ "approvals": {
1369
+ "anyOf": [
1370
+ {
1371
+ "type": "string",
1372
+ "enum": [
1373
+ "read-only",
1374
+ "write",
1375
+ "auto-safe",
1376
+ "full-auto",
1377
+ "bypass"
1378
+ ]
1379
+ },
1380
+ {
1381
+ "type": "object",
1382
+ "properties": {
1383
+ "mode": {
1384
+ "type": "string",
1385
+ "enum": [
1386
+ "read-only",
1387
+ "write",
1388
+ "auto-safe",
1389
+ "full-auto",
1390
+ "bypass"
1391
+ ]
1392
+ },
1393
+ "rater": {
1394
+ "type": "string"
1395
+ },
1396
+ "allow": {
1397
+ "type": "array",
1398
+ "items": {
1399
+ "$ref": "#/$defs/ApprovalEntry"
1400
+ }
1401
+ },
1402
+ "deny": {
1403
+ "type": "array",
1404
+ "items": {
1405
+ "$ref": "#/$defs/ApprovalEntry"
1406
+ }
1407
+ },
1408
+ "escalate": {
1409
+ "type": "array",
1410
+ "items": {
1411
+ "$ref": "#/$defs/ApprovalEntry"
1412
+ }
1413
+ },
1414
+ "raterTimeoutMs": {
1415
+ "type": "integer",
1416
+ "minimum": 1,
1417
+ "maximum": 9007199254740991
1418
+ },
1419
+ "mcp": {
1420
+ "type": "object",
1421
+ "properties": {
1422
+ "defaults": {
1423
+ "type": "object",
1424
+ "properties": {
1425
+ "trustAnnotations": {
1426
+ "type": "array",
1427
+ "items": {
1428
+ "type": "string",
1429
+ "enum": [
1430
+ "readOnlyHint",
1431
+ "destructiveHint",
1432
+ "idempotentHint",
1433
+ "openWorldHint"
1434
+ ]
1435
+ }
1436
+ }
1437
+ },
1438
+ "additionalProperties": false
1439
+ },
1440
+ "servers": {
1441
+ "type": "object",
1442
+ "propertyNames": {
1443
+ "type": "string",
1444
+ "minLength": 1
1445
+ },
1446
+ "additionalProperties": {
1447
+ "type": "object",
1448
+ "properties": {
1449
+ "trustAnnotations": {
1450
+ "type": "array",
1451
+ "items": {
1452
+ "type": "string",
1453
+ "enum": [
1454
+ "readOnlyHint",
1455
+ "destructiveHint",
1456
+ "idempotentHint",
1457
+ "openWorldHint"
1458
+ ]
1459
+ }
1460
+ }
1461
+ },
1462
+ "additionalProperties": false
1463
+ }
1464
+ }
1465
+ },
1466
+ "additionalProperties": false
1467
+ }
1468
+ }
1469
+ }
1470
+ ]
1471
+ },
1084
1472
  "customTools": {
1085
1473
  "anyOf": [
1086
1474
  {
@@ -1252,58 +1640,6 @@
1252
1640
  "maxOutputBytes": {
1253
1641
  "type": "number"
1254
1642
  },
1255
- "allowlist": {
1256
- "type": "boolean"
1257
- },
1258
- "persistAllowlist": {
1259
- "type": "boolean"
1260
- },
1261
- "judge": {
1262
- "anyOf": [
1263
- {
1264
- "type": "boolean"
1265
- },
1266
- {
1267
- "type": "object",
1268
- "properties": {
1269
- "enabled": {
1270
- "type": "boolean"
1271
- },
1272
- "autoApproveLow": {
1273
- "type": "boolean"
1274
- },
1275
- "blockHigh": {
1276
- "type": "boolean"
1277
- },
1278
- "model": {
1279
- "type": "object",
1280
- "properties": {
1281
- "type": {
1282
- "type": "string"
1283
- },
1284
- "model": {
1285
- "type": "string"
1286
- },
1287
- "configuration": {
1288
- "type": "object",
1289
- "propertyNames": {
1290
- "type": "string"
1291
- },
1292
- "additionalProperties": {}
1293
- },
1294
- "apiKeyEnvironmentVariable": {
1295
- "type": "string"
1296
- }
1297
- },
1298
- "additionalProperties": {}
1299
- }
1300
- }
1301
- }
1302
- ]
1303
- },
1304
- "yolo": {
1305
- "type": "boolean"
1306
- },
1307
1643
  "fileSet": {
1308
1644
  "type": "string",
1309
1645
  "enum": [
@@ -1318,6 +1654,110 @@
1318
1654
  }
1319
1655
  ]
1320
1656
  },
1657
+ "approvals": {
1658
+ "anyOf": [
1659
+ {
1660
+ "type": "string",
1661
+ "enum": [
1662
+ "read-only",
1663
+ "write",
1664
+ "auto-safe",
1665
+ "full-auto",
1666
+ "bypass"
1667
+ ]
1668
+ },
1669
+ {
1670
+ "type": "object",
1671
+ "properties": {
1672
+ "mode": {
1673
+ "type": "string",
1674
+ "enum": [
1675
+ "read-only",
1676
+ "write",
1677
+ "auto-safe",
1678
+ "full-auto",
1679
+ "bypass"
1680
+ ]
1681
+ },
1682
+ "rater": {
1683
+ "type": "string"
1684
+ },
1685
+ "allow": {
1686
+ "type": "array",
1687
+ "items": {
1688
+ "$ref": "#/$defs/ApprovalEntry"
1689
+ }
1690
+ },
1691
+ "deny": {
1692
+ "type": "array",
1693
+ "items": {
1694
+ "$ref": "#/$defs/ApprovalEntry"
1695
+ }
1696
+ },
1697
+ "escalate": {
1698
+ "type": "array",
1699
+ "items": {
1700
+ "$ref": "#/$defs/ApprovalEntry"
1701
+ }
1702
+ },
1703
+ "raterTimeoutMs": {
1704
+ "type": "integer",
1705
+ "minimum": 1,
1706
+ "maximum": 9007199254740991
1707
+ },
1708
+ "mcp": {
1709
+ "type": "object",
1710
+ "properties": {
1711
+ "defaults": {
1712
+ "type": "object",
1713
+ "properties": {
1714
+ "trustAnnotations": {
1715
+ "type": "array",
1716
+ "items": {
1717
+ "type": "string",
1718
+ "enum": [
1719
+ "readOnlyHint",
1720
+ "destructiveHint",
1721
+ "idempotentHint",
1722
+ "openWorldHint"
1723
+ ]
1724
+ }
1725
+ }
1726
+ },
1727
+ "additionalProperties": false
1728
+ },
1729
+ "servers": {
1730
+ "type": "object",
1731
+ "propertyNames": {
1732
+ "type": "string",
1733
+ "minLength": 1
1734
+ },
1735
+ "additionalProperties": {
1736
+ "type": "object",
1737
+ "properties": {
1738
+ "trustAnnotations": {
1739
+ "type": "array",
1740
+ "items": {
1741
+ "type": "string",
1742
+ "enum": [
1743
+ "readOnlyHint",
1744
+ "destructiveHint",
1745
+ "idempotentHint",
1746
+ "openWorldHint"
1747
+ ]
1748
+ }
1749
+ }
1750
+ },
1751
+ "additionalProperties": false
1752
+ }
1753
+ }
1754
+ },
1755
+ "additionalProperties": false
1756
+ }
1757
+ }
1758
+ }
1759
+ ]
1760
+ },
1321
1761
  "customTools": {
1322
1762
  "anyOf": [
1323
1763
  {
@@ -1489,58 +1929,6 @@
1489
1929
  "maxOutputBytes": {
1490
1930
  "type": "number"
1491
1931
  },
1492
- "allowlist": {
1493
- "type": "boolean"
1494
- },
1495
- "persistAllowlist": {
1496
- "type": "boolean"
1497
- },
1498
- "judge": {
1499
- "anyOf": [
1500
- {
1501
- "type": "boolean"
1502
- },
1503
- {
1504
- "type": "object",
1505
- "properties": {
1506
- "enabled": {
1507
- "type": "boolean"
1508
- },
1509
- "autoApproveLow": {
1510
- "type": "boolean"
1511
- },
1512
- "blockHigh": {
1513
- "type": "boolean"
1514
- },
1515
- "model": {
1516
- "type": "object",
1517
- "properties": {
1518
- "type": {
1519
- "type": "string"
1520
- },
1521
- "model": {
1522
- "type": "string"
1523
- },
1524
- "configuration": {
1525
- "type": "object",
1526
- "propertyNames": {
1527
- "type": "string"
1528
- },
1529
- "additionalProperties": {}
1530
- },
1531
- "apiKeyEnvironmentVariable": {
1532
- "type": "string"
1533
- }
1534
- },
1535
- "additionalProperties": {}
1536
- }
1537
- }
1538
- }
1539
- ]
1540
- },
1541
- "yolo": {
1542
- "type": "boolean"
1543
- },
1544
1932
  "fileSet": {
1545
1933
  "type": "string",
1546
1934
  "enum": [
@@ -1555,30 +1943,134 @@
1555
1943
  }
1556
1944
  ]
1557
1945
  },
1558
- "customTools": {
1946
+ "approvals": {
1559
1947
  "anyOf": [
1560
1948
  {
1561
- "type": "boolean",
1562
- "const": false
1949
+ "type": "string",
1950
+ "enum": [
1951
+ "read-only",
1952
+ "write",
1953
+ "auto-safe",
1954
+ "full-auto",
1955
+ "bypass"
1956
+ ]
1563
1957
  },
1564
1958
  {
1565
1959
  "type": "object",
1566
- "propertyNames": {
1567
- "type": "string"
1568
- },
1569
- "additionalProperties": {
1570
- "type": "object",
1571
- "properties": {
1572
- "command": {
1573
- "type": "string"
1574
- },
1575
- "description": {
1576
- "type": "string"
1577
- },
1578
- "parameters": {
1579
- "type": "object",
1580
- "propertyNames": {
1581
- "type": "string"
1960
+ "properties": {
1961
+ "mode": {
1962
+ "type": "string",
1963
+ "enum": [
1964
+ "read-only",
1965
+ "write",
1966
+ "auto-safe",
1967
+ "full-auto",
1968
+ "bypass"
1969
+ ]
1970
+ },
1971
+ "rater": {
1972
+ "type": "string"
1973
+ },
1974
+ "allow": {
1975
+ "type": "array",
1976
+ "items": {
1977
+ "$ref": "#/$defs/ApprovalEntry"
1978
+ }
1979
+ },
1980
+ "deny": {
1981
+ "type": "array",
1982
+ "items": {
1983
+ "$ref": "#/$defs/ApprovalEntry"
1984
+ }
1985
+ },
1986
+ "escalate": {
1987
+ "type": "array",
1988
+ "items": {
1989
+ "$ref": "#/$defs/ApprovalEntry"
1990
+ }
1991
+ },
1992
+ "raterTimeoutMs": {
1993
+ "type": "integer",
1994
+ "minimum": 1,
1995
+ "maximum": 9007199254740991
1996
+ },
1997
+ "mcp": {
1998
+ "type": "object",
1999
+ "properties": {
2000
+ "defaults": {
2001
+ "type": "object",
2002
+ "properties": {
2003
+ "trustAnnotations": {
2004
+ "type": "array",
2005
+ "items": {
2006
+ "type": "string",
2007
+ "enum": [
2008
+ "readOnlyHint",
2009
+ "destructiveHint",
2010
+ "idempotentHint",
2011
+ "openWorldHint"
2012
+ ]
2013
+ }
2014
+ }
2015
+ },
2016
+ "additionalProperties": false
2017
+ },
2018
+ "servers": {
2019
+ "type": "object",
2020
+ "propertyNames": {
2021
+ "type": "string",
2022
+ "minLength": 1
2023
+ },
2024
+ "additionalProperties": {
2025
+ "type": "object",
2026
+ "properties": {
2027
+ "trustAnnotations": {
2028
+ "type": "array",
2029
+ "items": {
2030
+ "type": "string",
2031
+ "enum": [
2032
+ "readOnlyHint",
2033
+ "destructiveHint",
2034
+ "idempotentHint",
2035
+ "openWorldHint"
2036
+ ]
2037
+ }
2038
+ }
2039
+ },
2040
+ "additionalProperties": false
2041
+ }
2042
+ }
2043
+ },
2044
+ "additionalProperties": false
2045
+ }
2046
+ }
2047
+ }
2048
+ ]
2049
+ },
2050
+ "customTools": {
2051
+ "anyOf": [
2052
+ {
2053
+ "type": "boolean",
2054
+ "const": false
2055
+ },
2056
+ {
2057
+ "type": "object",
2058
+ "propertyNames": {
2059
+ "type": "string"
2060
+ },
2061
+ "additionalProperties": {
2062
+ "type": "object",
2063
+ "properties": {
2064
+ "command": {
2065
+ "type": "string"
2066
+ },
2067
+ "description": {
2068
+ "type": "string"
2069
+ },
2070
+ "parameters": {
2071
+ "type": "object",
2072
+ "propertyNames": {
2073
+ "type": "string"
1582
2074
  },
1583
2075
  "additionalProperties": {
1584
2076
  "type": "object",
@@ -1726,58 +2218,6 @@
1726
2218
  "maxOutputBytes": {
1727
2219
  "type": "number"
1728
2220
  },
1729
- "allowlist": {
1730
- "type": "boolean"
1731
- },
1732
- "persistAllowlist": {
1733
- "type": "boolean"
1734
- },
1735
- "judge": {
1736
- "anyOf": [
1737
- {
1738
- "type": "boolean"
1739
- },
1740
- {
1741
- "type": "object",
1742
- "properties": {
1743
- "enabled": {
1744
- "type": "boolean"
1745
- },
1746
- "autoApproveLow": {
1747
- "type": "boolean"
1748
- },
1749
- "blockHigh": {
1750
- "type": "boolean"
1751
- },
1752
- "model": {
1753
- "type": "object",
1754
- "properties": {
1755
- "type": {
1756
- "type": "string"
1757
- },
1758
- "model": {
1759
- "type": "string"
1760
- },
1761
- "configuration": {
1762
- "type": "object",
1763
- "propertyNames": {
1764
- "type": "string"
1765
- },
1766
- "additionalProperties": {}
1767
- },
1768
- "apiKeyEnvironmentVariable": {
1769
- "type": "string"
1770
- }
1771
- },
1772
- "additionalProperties": {}
1773
- }
1774
- }
1775
- }
1776
- ]
1777
- },
1778
- "yolo": {
1779
- "type": "boolean"
1780
- },
1781
2221
  "fileSet": {
1782
2222
  "type": "string",
1783
2223
  "enum": [
@@ -1792,6 +2232,110 @@
1792
2232
  }
1793
2233
  ]
1794
2234
  },
2235
+ "approvals": {
2236
+ "anyOf": [
2237
+ {
2238
+ "type": "string",
2239
+ "enum": [
2240
+ "read-only",
2241
+ "write",
2242
+ "auto-safe",
2243
+ "full-auto",
2244
+ "bypass"
2245
+ ]
2246
+ },
2247
+ {
2248
+ "type": "object",
2249
+ "properties": {
2250
+ "mode": {
2251
+ "type": "string",
2252
+ "enum": [
2253
+ "read-only",
2254
+ "write",
2255
+ "auto-safe",
2256
+ "full-auto",
2257
+ "bypass"
2258
+ ]
2259
+ },
2260
+ "rater": {
2261
+ "type": "string"
2262
+ },
2263
+ "allow": {
2264
+ "type": "array",
2265
+ "items": {
2266
+ "$ref": "#/$defs/ApprovalEntry"
2267
+ }
2268
+ },
2269
+ "deny": {
2270
+ "type": "array",
2271
+ "items": {
2272
+ "$ref": "#/$defs/ApprovalEntry"
2273
+ }
2274
+ },
2275
+ "escalate": {
2276
+ "type": "array",
2277
+ "items": {
2278
+ "$ref": "#/$defs/ApprovalEntry"
2279
+ }
2280
+ },
2281
+ "raterTimeoutMs": {
2282
+ "type": "integer",
2283
+ "minimum": 1,
2284
+ "maximum": 9007199254740991
2285
+ },
2286
+ "mcp": {
2287
+ "type": "object",
2288
+ "properties": {
2289
+ "defaults": {
2290
+ "type": "object",
2291
+ "properties": {
2292
+ "trustAnnotations": {
2293
+ "type": "array",
2294
+ "items": {
2295
+ "type": "string",
2296
+ "enum": [
2297
+ "readOnlyHint",
2298
+ "destructiveHint",
2299
+ "idempotentHint",
2300
+ "openWorldHint"
2301
+ ]
2302
+ }
2303
+ }
2304
+ },
2305
+ "additionalProperties": false
2306
+ },
2307
+ "servers": {
2308
+ "type": "object",
2309
+ "propertyNames": {
2310
+ "type": "string",
2311
+ "minLength": 1
2312
+ },
2313
+ "additionalProperties": {
2314
+ "type": "object",
2315
+ "properties": {
2316
+ "trustAnnotations": {
2317
+ "type": "array",
2318
+ "items": {
2319
+ "type": "string",
2320
+ "enum": [
2321
+ "readOnlyHint",
2322
+ "destructiveHint",
2323
+ "idempotentHint",
2324
+ "openWorldHint"
2325
+ ]
2326
+ }
2327
+ }
2328
+ },
2329
+ "additionalProperties": false
2330
+ }
2331
+ }
2332
+ },
2333
+ "additionalProperties": false
2334
+ }
2335
+ }
2336
+ }
2337
+ ]
2338
+ },
1795
2339
  "customTools": {
1796
2340
  "anyOf": [
1797
2341
  {
@@ -1963,58 +2507,6 @@
1963
2507
  "maxOutputBytes": {
1964
2508
  "type": "number"
1965
2509
  },
1966
- "allowlist": {
1967
- "type": "boolean"
1968
- },
1969
- "persistAllowlist": {
1970
- "type": "boolean"
1971
- },
1972
- "judge": {
1973
- "anyOf": [
1974
- {
1975
- "type": "boolean"
1976
- },
1977
- {
1978
- "type": "object",
1979
- "properties": {
1980
- "enabled": {
1981
- "type": "boolean"
1982
- },
1983
- "autoApproveLow": {
1984
- "type": "boolean"
1985
- },
1986
- "blockHigh": {
1987
- "type": "boolean"
1988
- },
1989
- "model": {
1990
- "type": "object",
1991
- "properties": {
1992
- "type": {
1993
- "type": "string"
1994
- },
1995
- "model": {
1996
- "type": "string"
1997
- },
1998
- "configuration": {
1999
- "type": "object",
2000
- "propertyNames": {
2001
- "type": "string"
2002
- },
2003
- "additionalProperties": {}
2004
- },
2005
- "apiKeyEnvironmentVariable": {
2006
- "type": "string"
2007
- }
2008
- },
2009
- "additionalProperties": {}
2010
- }
2011
- }
2012
- }
2013
- ]
2014
- },
2015
- "yolo": {
2016
- "type": "boolean"
2017
- },
2018
2510
  "fileSet": {
2019
2511
  "type": "string",
2020
2512
  "enum": [
@@ -2029,6 +2521,110 @@
2029
2521
  }
2030
2522
  ]
2031
2523
  },
2524
+ "approvals": {
2525
+ "anyOf": [
2526
+ {
2527
+ "type": "string",
2528
+ "enum": [
2529
+ "read-only",
2530
+ "write",
2531
+ "auto-safe",
2532
+ "full-auto",
2533
+ "bypass"
2534
+ ]
2535
+ },
2536
+ {
2537
+ "type": "object",
2538
+ "properties": {
2539
+ "mode": {
2540
+ "type": "string",
2541
+ "enum": [
2542
+ "read-only",
2543
+ "write",
2544
+ "auto-safe",
2545
+ "full-auto",
2546
+ "bypass"
2547
+ ]
2548
+ },
2549
+ "rater": {
2550
+ "type": "string"
2551
+ },
2552
+ "allow": {
2553
+ "type": "array",
2554
+ "items": {
2555
+ "$ref": "#/$defs/ApprovalEntry"
2556
+ }
2557
+ },
2558
+ "deny": {
2559
+ "type": "array",
2560
+ "items": {
2561
+ "$ref": "#/$defs/ApprovalEntry"
2562
+ }
2563
+ },
2564
+ "escalate": {
2565
+ "type": "array",
2566
+ "items": {
2567
+ "$ref": "#/$defs/ApprovalEntry"
2568
+ }
2569
+ },
2570
+ "raterTimeoutMs": {
2571
+ "type": "integer",
2572
+ "minimum": 1,
2573
+ "maximum": 9007199254740991
2574
+ },
2575
+ "mcp": {
2576
+ "type": "object",
2577
+ "properties": {
2578
+ "defaults": {
2579
+ "type": "object",
2580
+ "properties": {
2581
+ "trustAnnotations": {
2582
+ "type": "array",
2583
+ "items": {
2584
+ "type": "string",
2585
+ "enum": [
2586
+ "readOnlyHint",
2587
+ "destructiveHint",
2588
+ "idempotentHint",
2589
+ "openWorldHint"
2590
+ ]
2591
+ }
2592
+ }
2593
+ },
2594
+ "additionalProperties": false
2595
+ },
2596
+ "servers": {
2597
+ "type": "object",
2598
+ "propertyNames": {
2599
+ "type": "string",
2600
+ "minLength": 1
2601
+ },
2602
+ "additionalProperties": {
2603
+ "type": "object",
2604
+ "properties": {
2605
+ "trustAnnotations": {
2606
+ "type": "array",
2607
+ "items": {
2608
+ "type": "string",
2609
+ "enum": [
2610
+ "readOnlyHint",
2611
+ "destructiveHint",
2612
+ "idempotentHint",
2613
+ "openWorldHint"
2614
+ ]
2615
+ }
2616
+ }
2617
+ },
2618
+ "additionalProperties": false
2619
+ }
2620
+ }
2621
+ },
2622
+ "additionalProperties": false
2623
+ }
2624
+ }
2625
+ }
2626
+ ]
2627
+ },
2032
2628
  "port": {
2033
2629
  "type": "number"
2034
2630
  },
@@ -2097,6 +2693,27 @@
2097
2693
  }
2098
2694
  }
2099
2695
  },
2696
+ "toolLoopGuard": {
2697
+ "anyOf": [
2698
+ {
2699
+ "type": "boolean"
2700
+ },
2701
+ {
2702
+ "type": "object",
2703
+ "properties": {
2704
+ "warn": {
2705
+ "type": "boolean"
2706
+ },
2707
+ "halt": {
2708
+ "type": "boolean"
2709
+ },
2710
+ "threshold": {
2711
+ "type": "number"
2712
+ }
2713
+ }
2714
+ }
2715
+ ]
2716
+ },
2100
2717
  "reporters": {
2101
2718
  "type": "object",
2102
2719
  "propertyNames": {
@@ -2105,7 +2722,408 @@
2105
2722
  "additionalProperties": {
2106
2723
  "type": "string"
2107
2724
  }
2725
+ },
2726
+ "subagents": {
2727
+ "type": "array",
2728
+ "items": {
2729
+ "type": "object",
2730
+ "properties": {
2731
+ "name": {
2732
+ "type": "string"
2733
+ },
2734
+ "description": {
2735
+ "type": "string"
2736
+ },
2737
+ "profile": {
2738
+ "type": "string"
2739
+ }
2740
+ },
2741
+ "required": [
2742
+ "name",
2743
+ "profile"
2744
+ ]
2745
+ }
2108
2746
  }
2109
2747
  },
2110
- "additionalProperties": {}
2748
+ "additionalProperties": {},
2749
+ "$defs": {
2750
+ "ApprovalEntry": {
2751
+ "oneOf": [
2752
+ {
2753
+ "oneOf": [
2754
+ {
2755
+ "type": "object",
2756
+ "properties": {
2757
+ "type": {
2758
+ "type": "string",
2759
+ "const": "shell"
2760
+ },
2761
+ "matcher": {
2762
+ "type": "string",
2763
+ "const": "exact"
2764
+ },
2765
+ "pattern": {
2766
+ "type": "string"
2767
+ },
2768
+ "rate": {
2769
+ "type": "boolean"
2770
+ }
2771
+ },
2772
+ "required": [
2773
+ "type",
2774
+ "matcher",
2775
+ "pattern"
2776
+ ],
2777
+ "additionalProperties": false
2778
+ },
2779
+ {
2780
+ "type": "object",
2781
+ "properties": {
2782
+ "type": {
2783
+ "type": "string",
2784
+ "const": "shell"
2785
+ },
2786
+ "matcher": {
2787
+ "type": "string",
2788
+ "const": "glob"
2789
+ },
2790
+ "pattern": {
2791
+ "type": "string"
2792
+ },
2793
+ "rate": {
2794
+ "type": "boolean"
2795
+ }
2796
+ },
2797
+ "required": [
2798
+ "type",
2799
+ "matcher",
2800
+ "pattern"
2801
+ ],
2802
+ "additionalProperties": false
2803
+ },
2804
+ {
2805
+ "type": "object",
2806
+ "properties": {
2807
+ "type": {
2808
+ "type": "string",
2809
+ "const": "shell"
2810
+ },
2811
+ "matcher": {
2812
+ "type": "string",
2813
+ "const": "regexp"
2814
+ },
2815
+ "pattern": {
2816
+ "type": "string",
2817
+ "maxLength": 200
2818
+ },
2819
+ "rate": {
2820
+ "type": "boolean"
2821
+ }
2822
+ },
2823
+ "required": [
2824
+ "type",
2825
+ "matcher",
2826
+ "pattern"
2827
+ ],
2828
+ "additionalProperties": false
2829
+ }
2830
+ ]
2831
+ },
2832
+ {
2833
+ "oneOf": [
2834
+ {
2835
+ "type": "object",
2836
+ "properties": {
2837
+ "type": {
2838
+ "type": "string",
2839
+ "const": "tool"
2840
+ },
2841
+ "matcher": {
2842
+ "type": "string",
2843
+ "const": "exact"
2844
+ },
2845
+ "pattern": {
2846
+ "type": "string"
2847
+ },
2848
+ "host": {
2849
+ "type": "string",
2850
+ "minLength": 1
2851
+ },
2852
+ "rate": {
2853
+ "type": "boolean"
2854
+ }
2855
+ },
2856
+ "required": [
2857
+ "type",
2858
+ "matcher",
2859
+ "pattern"
2860
+ ],
2861
+ "additionalProperties": false
2862
+ },
2863
+ {
2864
+ "type": "object",
2865
+ "properties": {
2866
+ "type": {
2867
+ "type": "string",
2868
+ "const": "tool"
2869
+ },
2870
+ "matcher": {
2871
+ "type": "string",
2872
+ "const": "glob"
2873
+ },
2874
+ "pattern": {
2875
+ "type": "string"
2876
+ },
2877
+ "host": {
2878
+ "type": "string",
2879
+ "minLength": 1
2880
+ },
2881
+ "rate": {
2882
+ "type": "boolean"
2883
+ }
2884
+ },
2885
+ "required": [
2886
+ "type",
2887
+ "matcher",
2888
+ "pattern"
2889
+ ],
2890
+ "additionalProperties": false
2891
+ },
2892
+ {
2893
+ "type": "object",
2894
+ "properties": {
2895
+ "type": {
2896
+ "type": "string",
2897
+ "const": "tool"
2898
+ },
2899
+ "matcher": {
2900
+ "type": "string",
2901
+ "const": "regexp"
2902
+ },
2903
+ "pattern": {
2904
+ "type": "string",
2905
+ "maxLength": 200
2906
+ },
2907
+ "host": {
2908
+ "type": "string",
2909
+ "minLength": 1
2910
+ },
2911
+ "rate": {
2912
+ "type": "boolean"
2913
+ }
2914
+ },
2915
+ "required": [
2916
+ "type",
2917
+ "matcher",
2918
+ "pattern"
2919
+ ],
2920
+ "additionalProperties": false
2921
+ },
2922
+ {
2923
+ "type": "object",
2924
+ "properties": {
2925
+ "type": {
2926
+ "type": "string",
2927
+ "const": "tool"
2928
+ },
2929
+ "matcher": {
2930
+ "type": "string",
2931
+ "const": "hint"
2932
+ },
2933
+ "pattern": {
2934
+ "type": "object",
2935
+ "properties": {
2936
+ "readOnlyHint": {
2937
+ "type": "boolean"
2938
+ },
2939
+ "destructiveHint": {
2940
+ "type": "boolean"
2941
+ },
2942
+ "idempotentHint": {
2943
+ "type": "boolean"
2944
+ },
2945
+ "openWorldHint": {
2946
+ "type": "boolean"
2947
+ }
2948
+ },
2949
+ "additionalProperties": false,
2950
+ "minProperties": 1
2951
+ },
2952
+ "host": {
2953
+ "type": "string",
2954
+ "minLength": 1
2955
+ },
2956
+ "rate": {
2957
+ "type": "boolean"
2958
+ }
2959
+ },
2960
+ "required": [
2961
+ "type",
2962
+ "matcher",
2963
+ "pattern"
2964
+ ],
2965
+ "additionalProperties": false
2966
+ }
2967
+ ]
2968
+ },
2969
+ {
2970
+ "oneOf": [
2971
+ {
2972
+ "type": "object",
2973
+ "properties": {
2974
+ "type": {
2975
+ "type": "string",
2976
+ "const": "mcpTool"
2977
+ },
2978
+ "matcher": {
2979
+ "type": "string",
2980
+ "const": "exact"
2981
+ },
2982
+ "server": {
2983
+ "type": "string",
2984
+ "minLength": 1
2985
+ },
2986
+ "pattern": {
2987
+ "type": "string"
2988
+ },
2989
+ "host": {
2990
+ "type": "string",
2991
+ "minLength": 1
2992
+ },
2993
+ "rate": {
2994
+ "type": "boolean"
2995
+ }
2996
+ },
2997
+ "required": [
2998
+ "type",
2999
+ "matcher",
3000
+ "server",
3001
+ "pattern"
3002
+ ],
3003
+ "additionalProperties": false
3004
+ },
3005
+ {
3006
+ "type": "object",
3007
+ "properties": {
3008
+ "type": {
3009
+ "type": "string",
3010
+ "const": "mcpTool"
3011
+ },
3012
+ "matcher": {
3013
+ "type": "string",
3014
+ "const": "glob"
3015
+ },
3016
+ "server": {
3017
+ "type": "string",
3018
+ "minLength": 1
3019
+ },
3020
+ "pattern": {
3021
+ "type": "string"
3022
+ },
3023
+ "host": {
3024
+ "type": "string",
3025
+ "minLength": 1
3026
+ },
3027
+ "rate": {
3028
+ "type": "boolean"
3029
+ }
3030
+ },
3031
+ "required": [
3032
+ "type",
3033
+ "matcher",
3034
+ "server",
3035
+ "pattern"
3036
+ ],
3037
+ "additionalProperties": false
3038
+ },
3039
+ {
3040
+ "type": "object",
3041
+ "properties": {
3042
+ "type": {
3043
+ "type": "string",
3044
+ "const": "mcpTool"
3045
+ },
3046
+ "matcher": {
3047
+ "type": "string",
3048
+ "const": "regexp"
3049
+ },
3050
+ "server": {
3051
+ "type": "string",
3052
+ "minLength": 1
3053
+ },
3054
+ "pattern": {
3055
+ "type": "string",
3056
+ "maxLength": 200
3057
+ },
3058
+ "host": {
3059
+ "type": "string",
3060
+ "minLength": 1
3061
+ },
3062
+ "rate": {
3063
+ "type": "boolean"
3064
+ }
3065
+ },
3066
+ "required": [
3067
+ "type",
3068
+ "matcher",
3069
+ "server",
3070
+ "pattern"
3071
+ ],
3072
+ "additionalProperties": false
3073
+ },
3074
+ {
3075
+ "type": "object",
3076
+ "properties": {
3077
+ "type": {
3078
+ "type": "string",
3079
+ "const": "mcpTool"
3080
+ },
3081
+ "matcher": {
3082
+ "type": "string",
3083
+ "const": "hint"
3084
+ },
3085
+ "server": {
3086
+ "type": "string",
3087
+ "minLength": 1
3088
+ },
3089
+ "pattern": {
3090
+ "type": "object",
3091
+ "properties": {
3092
+ "readOnlyHint": {
3093
+ "type": "boolean"
3094
+ },
3095
+ "destructiveHint": {
3096
+ "type": "boolean"
3097
+ },
3098
+ "idempotentHint": {
3099
+ "type": "boolean"
3100
+ },
3101
+ "openWorldHint": {
3102
+ "type": "boolean"
3103
+ }
3104
+ },
3105
+ "additionalProperties": false,
3106
+ "minProperties": 1
3107
+ },
3108
+ "host": {
3109
+ "type": "string",
3110
+ "minLength": 1
3111
+ },
3112
+ "rate": {
3113
+ "type": "boolean"
3114
+ }
3115
+ },
3116
+ "required": [
3117
+ "type",
3118
+ "matcher",
3119
+ "server",
3120
+ "pattern"
3121
+ ],
3122
+ "additionalProperties": false
3123
+ }
3124
+ ]
3125
+ }
3126
+ ]
3127
+ }
3128
+ }
2111
3129
  }