@gaunt-sloth/core 2.0.0-alpha.24 → 2.0.0-alpha.26

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 (109) hide show
  1. package/README.md +1 -1
  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 +1 -0
  6. package/dist/config/defaults.js +1 -0
  7. package/dist/config/defaults.js.map +1 -1
  8. package/dist/config/loader.d.ts +13 -6
  9. package/dist/config/loader.js +171 -28
  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/schema.d.ts +2372 -114
  15. package/dist/config/schema.js +845 -16
  16. package/dist/config/schema.js.map +1 -1
  17. package/dist/config/shell-policy.d.ts +466 -116
  18. package/dist/config/shell-policy.js +273 -62
  19. package/dist/config/shell-policy.js.map +1 -1
  20. package/dist/config/tool-descriptions.d.ts +165 -0
  21. package/dist/config/tool-descriptions.js +229 -0
  22. package/dist/config/tool-descriptions.js.map +1 -0
  23. package/dist/config/types.d.ts +36 -1
  24. package/dist/config/types.js.map +1 -1
  25. package/dist/config.d.ts +3 -0
  26. package/dist/config.js +3 -0
  27. package/dist/config.js.map +1 -1
  28. package/dist/core/GthAbstractAgent.d.ts +59 -1
  29. package/dist/core/GthAbstractAgent.js +72 -0
  30. package/dist/core/GthAbstractAgent.js.map +1 -1
  31. package/dist/core/GthAgentRunner.d.ts +341 -58
  32. package/dist/core/GthAgentRunner.js +817 -149
  33. package/dist/core/GthAgentRunner.js.map +1 -1
  34. package/dist/core/GthLangChainAgent.d.ts +16 -0
  35. package/dist/core/GthLangChainAgent.js +72 -2
  36. package/dist/core/GthLangChainAgent.js.map +1 -1
  37. package/dist/core/approvals/annotations.d.ts +122 -0
  38. package/dist/core/approvals/annotations.js +137 -0
  39. package/dist/core/approvals/annotations.js.map +1 -0
  40. package/dist/core/approvals/grants.d.ts +216 -0
  41. package/dist/core/approvals/grants.js +469 -0
  42. package/dist/core/approvals/grants.js.map +1 -0
  43. package/dist/core/approvals/matcher.d.ts +202 -0
  44. package/dist/core/approvals/matcher.js +267 -0
  45. package/dist/core/approvals/matcher.js.map +1 -0
  46. package/dist/core/approvals/mcpSubjects.d.ts +40 -0
  47. package/dist/core/approvals/mcpSubjects.js +99 -0
  48. package/dist/core/approvals/mcpSubjects.js.map +1 -0
  49. package/dist/core/approvals/toolAnnotationSources.d.ts +105 -0
  50. package/dist/core/approvals/toolAnnotationSources.js +277 -0
  51. package/dist/core/approvals/toolAnnotationSources.js.map +1 -0
  52. package/dist/core/approvals/toolHost.d.ts +46 -0
  53. package/dist/core/approvals/toolHost.js +108 -0
  54. package/dist/core/approvals/toolHost.js.map +1 -0
  55. package/dist/core/launchBanner.d.ts +120 -0
  56. package/dist/core/launchBanner.js +399 -0
  57. package/dist/core/launchBanner.js.map +1 -0
  58. package/dist/core/plainToolIndication.js +13 -7
  59. package/dist/core/plainToolIndication.js.map +1 -1
  60. package/dist/core/shell/approvalStop.d.ts +75 -0
  61. package/dist/core/shell/approvalStop.js +108 -0
  62. package/dist/core/shell/approvalStop.js.map +1 -0
  63. package/dist/core/shell/arity.d.ts +6 -0
  64. package/dist/core/shell/arity.js +20 -6
  65. package/dist/core/shell/arity.js.map +1 -1
  66. package/dist/core/shell/denylist.d.ts +11 -0
  67. package/dist/core/shell/denylist.js +37 -0
  68. package/dist/core/shell/denylist.js.map +1 -0
  69. package/dist/core/shell/normalize.d.ts +41 -1
  70. package/dist/core/shell/normalize.js +58 -4
  71. package/dist/core/shell/normalize.js.map +1 -1
  72. package/dist/core/shell/openWorld.d.ts +138 -0
  73. package/dist/core/shell/openWorld.js +523 -0
  74. package/dist/core/shell/openWorld.js.map +1 -0
  75. package/dist/core/shell/rater.d.ts +560 -0
  76. package/dist/core/shell/rater.js +895 -0
  77. package/dist/core/shell/rater.js.map +1 -0
  78. package/dist/core/shell/raterModel.d.ts +41 -0
  79. package/dist/core/shell/raterModel.js +51 -0
  80. package/dist/core/shell/raterModel.js.map +1 -0
  81. package/dist/core/shell/rejection.d.ts +66 -0
  82. package/dist/core/shell/rejection.js +38 -0
  83. package/dist/core/shell/rejection.js.map +1 -0
  84. package/dist/core/types.d.ts +71 -9
  85. package/dist/core/types.js.map +1 -1
  86. package/dist/runtime/askStructured.d.ts +8 -7
  87. package/dist/runtime/askStructured.js +8 -7
  88. package/dist/runtime/askStructured.js.map +1 -1
  89. package/dist/runtime/conversation.js +89 -76
  90. package/dist/runtime/conversation.js.map +1 -1
  91. package/dist/runtime/singleShot.js +71 -60
  92. package/dist/runtime/singleShot.js.map +1 -1
  93. package/dist/utils/ProgressIndicator.d.ts +21 -0
  94. package/dist/utils/ProgressIndicator.js +30 -3
  95. package/dist/utils/ProgressIndicator.js.map +1 -1
  96. package/dist/utils/consoleUtils.d.ts +30 -0
  97. package/dist/utils/consoleUtils.js +27 -2
  98. package/dist/utils/consoleUtils.js.map +1 -1
  99. package/dist/utils/systemUtils.d.ts +17 -0
  100. package/dist/utils/systemUtils.js +17 -0
  101. package/dist/utils/systemUtils.js.map +1 -1
  102. package/package.json +5 -2
  103. package/schema/gsloth-config.schema.json +1216 -417
  104. package/dist/core/shell/allowlist.d.ts +0 -75
  105. package/dist/core/shell/allowlist.js +0 -187
  106. package/dist/core/shell/allowlist.js.map +0 -1
  107. package/dist/core/shell/judge.d.ts +0 -161
  108. package/dist/core/shell/judge.js +0 -261
  109. package/dist/core/shell/judge.js.map +0 -1
@@ -383,58 +383,6 @@
383
383
  "maxOutputBytes": {
384
384
  "type": "number"
385
385
  },
386
- "allowlist": {
387
- "type": "boolean"
388
- },
389
- "persistAllowlist": {
390
- "type": "boolean"
391
- },
392
- "judge": {
393
- "anyOf": [
394
- {
395
- "type": "boolean"
396
- },
397
- {
398
- "type": "object",
399
- "properties": {
400
- "enabled": {
401
- "type": "boolean"
402
- },
403
- "autoApproveLow": {
404
- "type": "boolean"
405
- },
406
- "blockHigh": {
407
- "type": "boolean"
408
- },
409
- "model": {
410
- "type": "object",
411
- "properties": {
412
- "type": {
413
- "type": "string"
414
- },
415
- "model": {
416
- "type": "string"
417
- },
418
- "configuration": {
419
- "type": "object",
420
- "propertyNames": {
421
- "type": "string"
422
- },
423
- "additionalProperties": {}
424
- },
425
- "apiKeyEnvironmentVariable": {
426
- "type": "string"
427
- }
428
- },
429
- "additionalProperties": {}
430
- }
431
- }
432
- }
433
- ]
434
- },
435
- "yolo": {
436
- "type": "boolean"
437
- },
438
386
  "fileSet": {
439
387
  "type": "string",
440
388
  "enum": [
@@ -449,6 +397,110 @@
449
397
  }
450
398
  ]
451
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
+ },
452
504
  "tools": {
453
505
  "type": "array",
454
506
  "items": {}
@@ -482,6 +534,9 @@
482
534
  "useColour": {
483
535
  "type": "boolean"
484
536
  },
537
+ "useMouse": {
538
+ "type": "boolean"
539
+ },
485
540
  "streamSessionInferenceLog": {
486
541
  "type": "boolean"
487
542
  },
@@ -669,58 +724,6 @@
669
724
  "maxOutputBytes": {
670
725
  "type": "number"
671
726
  },
672
- "allowlist": {
673
- "type": "boolean"
674
- },
675
- "persistAllowlist": {
676
- "type": "boolean"
677
- },
678
- "judge": {
679
- "anyOf": [
680
- {
681
- "type": "boolean"
682
- },
683
- {
684
- "type": "object",
685
- "properties": {
686
- "enabled": {
687
- "type": "boolean"
688
- },
689
- "autoApproveLow": {
690
- "type": "boolean"
691
- },
692
- "blockHigh": {
693
- "type": "boolean"
694
- },
695
- "model": {
696
- "type": "object",
697
- "properties": {
698
- "type": {
699
- "type": "string"
700
- },
701
- "model": {
702
- "type": "string"
703
- },
704
- "configuration": {
705
- "type": "object",
706
- "propertyNames": {
707
- "type": "string"
708
- },
709
- "additionalProperties": {}
710
- },
711
- "apiKeyEnvironmentVariable": {
712
- "type": "string"
713
- }
714
- },
715
- "additionalProperties": {}
716
- }
717
- }
718
- }
719
- ]
720
- },
721
- "yolo": {
722
- "type": "boolean"
723
- },
724
727
  "fileSet": {
725
728
  "type": "string",
726
729
  "enum": [
@@ -735,6 +738,110 @@
735
738
  }
736
739
  ]
737
740
  },
741
+ "approvals": {
742
+ "anyOf": [
743
+ {
744
+ "type": "string",
745
+ "enum": [
746
+ "read-only",
747
+ "write",
748
+ "auto-safe",
749
+ "full-auto",
750
+ "bypass"
751
+ ]
752
+ },
753
+ {
754
+ "type": "object",
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
+ },
738
845
  "customTools": {
739
846
  "anyOf": [
740
847
  {
@@ -935,58 +1042,6 @@
935
1042
  "maxOutputBytes": {
936
1043
  "type": "number"
937
1044
  },
938
- "allowlist": {
939
- "type": "boolean"
940
- },
941
- "persistAllowlist": {
942
- "type": "boolean"
943
- },
944
- "judge": {
945
- "anyOf": [
946
- {
947
- "type": "boolean"
948
- },
949
- {
950
- "type": "object",
951
- "properties": {
952
- "enabled": {
953
- "type": "boolean"
954
- },
955
- "autoApproveLow": {
956
- "type": "boolean"
957
- },
958
- "blockHigh": {
959
- "type": "boolean"
960
- },
961
- "model": {
962
- "type": "object",
963
- "properties": {
964
- "type": {
965
- "type": "string"
966
- },
967
- "model": {
968
- "type": "string"
969
- },
970
- "configuration": {
971
- "type": "object",
972
- "propertyNames": {
973
- "type": "string"
974
- },
975
- "additionalProperties": {}
976
- },
977
- "apiKeyEnvironmentVariable": {
978
- "type": "string"
979
- }
980
- },
981
- "additionalProperties": {}
982
- }
983
- }
984
- }
985
- ]
986
- },
987
- "yolo": {
988
- "type": "boolean"
989
- },
990
1045
  "fileSet": {
991
1046
  "type": "string",
992
1047
  "enum": [
@@ -1001,6 +1056,110 @@
1001
1056
  }
1002
1057
  ]
1003
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
+ },
1004
1163
  "customTools": {
1005
1164
  "anyOf": [
1006
1165
  {
@@ -1192,58 +1351,6 @@
1192
1351
  "maxOutputBytes": {
1193
1352
  "type": "number"
1194
1353
  },
1195
- "allowlist": {
1196
- "type": "boolean"
1197
- },
1198
- "persistAllowlist": {
1199
- "type": "boolean"
1200
- },
1201
- "judge": {
1202
- "anyOf": [
1203
- {
1204
- "type": "boolean"
1205
- },
1206
- {
1207
- "type": "object",
1208
- "properties": {
1209
- "enabled": {
1210
- "type": "boolean"
1211
- },
1212
- "autoApproveLow": {
1213
- "type": "boolean"
1214
- },
1215
- "blockHigh": {
1216
- "type": "boolean"
1217
- },
1218
- "model": {
1219
- "type": "object",
1220
- "properties": {
1221
- "type": {
1222
- "type": "string"
1223
- },
1224
- "model": {
1225
- "type": "string"
1226
- },
1227
- "configuration": {
1228
- "type": "object",
1229
- "propertyNames": {
1230
- "type": "string"
1231
- },
1232
- "additionalProperties": {}
1233
- },
1234
- "apiKeyEnvironmentVariable": {
1235
- "type": "string"
1236
- }
1237
- },
1238
- "additionalProperties": {}
1239
- }
1240
- }
1241
- }
1242
- ]
1243
- },
1244
- "yolo": {
1245
- "type": "boolean"
1246
- },
1247
1354
  "fileSet": {
1248
1355
  "type": "string",
1249
1356
  "enum": [
@@ -1258,6 +1365,110 @@
1258
1365
  }
1259
1366
  ]
1260
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
+ },
1261
1472
  "customTools": {
1262
1473
  "anyOf": [
1263
1474
  {
@@ -1429,58 +1640,6 @@
1429
1640
  "maxOutputBytes": {
1430
1641
  "type": "number"
1431
1642
  },
1432
- "allowlist": {
1433
- "type": "boolean"
1434
- },
1435
- "persistAllowlist": {
1436
- "type": "boolean"
1437
- },
1438
- "judge": {
1439
- "anyOf": [
1440
- {
1441
- "type": "boolean"
1442
- },
1443
- {
1444
- "type": "object",
1445
- "properties": {
1446
- "enabled": {
1447
- "type": "boolean"
1448
- },
1449
- "autoApproveLow": {
1450
- "type": "boolean"
1451
- },
1452
- "blockHigh": {
1453
- "type": "boolean"
1454
- },
1455
- "model": {
1456
- "type": "object",
1457
- "properties": {
1458
- "type": {
1459
- "type": "string"
1460
- },
1461
- "model": {
1462
- "type": "string"
1463
- },
1464
- "configuration": {
1465
- "type": "object",
1466
- "propertyNames": {
1467
- "type": "string"
1468
- },
1469
- "additionalProperties": {}
1470
- },
1471
- "apiKeyEnvironmentVariable": {
1472
- "type": "string"
1473
- }
1474
- },
1475
- "additionalProperties": {}
1476
- }
1477
- }
1478
- }
1479
- ]
1480
- },
1481
- "yolo": {
1482
- "type": "boolean"
1483
- },
1484
1643
  "fileSet": {
1485
1644
  "type": "string",
1486
1645
  "enum": [
@@ -1495,6 +1654,110 @@
1495
1654
  }
1496
1655
  ]
1497
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
+ },
1498
1761
  "customTools": {
1499
1762
  "anyOf": [
1500
1763
  {
@@ -1666,58 +1929,6 @@
1666
1929
  "maxOutputBytes": {
1667
1930
  "type": "number"
1668
1931
  },
1669
- "allowlist": {
1670
- "type": "boolean"
1671
- },
1672
- "persistAllowlist": {
1673
- "type": "boolean"
1674
- },
1675
- "judge": {
1676
- "anyOf": [
1677
- {
1678
- "type": "boolean"
1679
- },
1680
- {
1681
- "type": "object",
1682
- "properties": {
1683
- "enabled": {
1684
- "type": "boolean"
1685
- },
1686
- "autoApproveLow": {
1687
- "type": "boolean"
1688
- },
1689
- "blockHigh": {
1690
- "type": "boolean"
1691
- },
1692
- "model": {
1693
- "type": "object",
1694
- "properties": {
1695
- "type": {
1696
- "type": "string"
1697
- },
1698
- "model": {
1699
- "type": "string"
1700
- },
1701
- "configuration": {
1702
- "type": "object",
1703
- "propertyNames": {
1704
- "type": "string"
1705
- },
1706
- "additionalProperties": {}
1707
- },
1708
- "apiKeyEnvironmentVariable": {
1709
- "type": "string"
1710
- }
1711
- },
1712
- "additionalProperties": {}
1713
- }
1714
- }
1715
- }
1716
- ]
1717
- },
1718
- "yolo": {
1719
- "type": "boolean"
1720
- },
1721
1932
  "fileSet": {
1722
1933
  "type": "string",
1723
1934
  "enum": [
@@ -1732,6 +1943,110 @@
1732
1943
  }
1733
1944
  ]
1734
1945
  },
1946
+ "approvals": {
1947
+ "anyOf": [
1948
+ {
1949
+ "type": "string",
1950
+ "enum": [
1951
+ "read-only",
1952
+ "write",
1953
+ "auto-safe",
1954
+ "full-auto",
1955
+ "bypass"
1956
+ ]
1957
+ },
1958
+ {
1959
+ "type": "object",
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
+ },
1735
2050
  "customTools": {
1736
2051
  "anyOf": [
1737
2052
  {
@@ -1903,58 +2218,6 @@
1903
2218
  "maxOutputBytes": {
1904
2219
  "type": "number"
1905
2220
  },
1906
- "allowlist": {
1907
- "type": "boolean"
1908
- },
1909
- "persistAllowlist": {
1910
- "type": "boolean"
1911
- },
1912
- "judge": {
1913
- "anyOf": [
1914
- {
1915
- "type": "boolean"
1916
- },
1917
- {
1918
- "type": "object",
1919
- "properties": {
1920
- "enabled": {
1921
- "type": "boolean"
1922
- },
1923
- "autoApproveLow": {
1924
- "type": "boolean"
1925
- },
1926
- "blockHigh": {
1927
- "type": "boolean"
1928
- },
1929
- "model": {
1930
- "type": "object",
1931
- "properties": {
1932
- "type": {
1933
- "type": "string"
1934
- },
1935
- "model": {
1936
- "type": "string"
1937
- },
1938
- "configuration": {
1939
- "type": "object",
1940
- "propertyNames": {
1941
- "type": "string"
1942
- },
1943
- "additionalProperties": {}
1944
- },
1945
- "apiKeyEnvironmentVariable": {
1946
- "type": "string"
1947
- }
1948
- },
1949
- "additionalProperties": {}
1950
- }
1951
- }
1952
- }
1953
- ]
1954
- },
1955
- "yolo": {
1956
- "type": "boolean"
1957
- },
1958
2221
  "fileSet": {
1959
2222
  "type": "string",
1960
2223
  "enum": [
@@ -1969,6 +2232,110 @@
1969
2232
  }
1970
2233
  ]
1971
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
+ },
1972
2339
  "customTools": {
1973
2340
  "anyOf": [
1974
2341
  {
@@ -2140,58 +2507,6 @@
2140
2507
  "maxOutputBytes": {
2141
2508
  "type": "number"
2142
2509
  },
2143
- "allowlist": {
2144
- "type": "boolean"
2145
- },
2146
- "persistAllowlist": {
2147
- "type": "boolean"
2148
- },
2149
- "judge": {
2150
- "anyOf": [
2151
- {
2152
- "type": "boolean"
2153
- },
2154
- {
2155
- "type": "object",
2156
- "properties": {
2157
- "enabled": {
2158
- "type": "boolean"
2159
- },
2160
- "autoApproveLow": {
2161
- "type": "boolean"
2162
- },
2163
- "blockHigh": {
2164
- "type": "boolean"
2165
- },
2166
- "model": {
2167
- "type": "object",
2168
- "properties": {
2169
- "type": {
2170
- "type": "string"
2171
- },
2172
- "model": {
2173
- "type": "string"
2174
- },
2175
- "configuration": {
2176
- "type": "object",
2177
- "propertyNames": {
2178
- "type": "string"
2179
- },
2180
- "additionalProperties": {}
2181
- },
2182
- "apiKeyEnvironmentVariable": {
2183
- "type": "string"
2184
- }
2185
- },
2186
- "additionalProperties": {}
2187
- }
2188
- }
2189
- }
2190
- ]
2191
- },
2192
- "yolo": {
2193
- "type": "boolean"
2194
- },
2195
2510
  "fileSet": {
2196
2511
  "type": "string",
2197
2512
  "enum": [
@@ -2206,6 +2521,110 @@
2206
2521
  }
2207
2522
  ]
2208
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
+ },
2209
2628
  "port": {
2210
2629
  "type": "number"
2211
2630
  },
@@ -2326,5 +2745,385 @@
2326
2745
  }
2327
2746
  }
2328
2747
  },
2329
- "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
+ }
2330
3129
  }