@sunaiva/gate 1.1.2 → 1.1.4

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 (102) hide show
  1. package/BUSINESS_LICENSE.md +2 -2
  2. package/CHANGELOG.md +2 -2
  3. package/LICENSE +0 -0
  4. package/README.DRAFT.md +418 -0
  5. package/README.md +471 -451
  6. package/README.md.bak-v1.0.0-stale-MIT +0 -0
  7. package/SUPPORT.md +0 -0
  8. package/TIER_DEFINITIONS.md +0 -0
  9. package/dist/config/defaults.d.ts +30 -10
  10. package/dist/config/defaults.d.ts.map +1 -1
  11. package/dist/config/defaults.js +49 -26
  12. package/dist/config/defaults.js.map +1 -1
  13. package/dist/config/loader.d.ts +0 -0
  14. package/dist/config/loader.d.ts.map +0 -0
  15. package/dist/config/loader.js +0 -0
  16. package/dist/config/loader.js.map +0 -0
  17. package/dist/engine/backend-client.d.ts +0 -0
  18. package/dist/engine/backend-client.d.ts.map +0 -0
  19. package/dist/engine/backend-client.js +0 -0
  20. package/dist/engine/backend-client.js.map +0 -0
  21. package/dist/engine/hmac-verifier.d.ts +0 -0
  22. package/dist/engine/hmac-verifier.d.ts.map +0 -0
  23. package/dist/engine/hmac-verifier.js +0 -0
  24. package/dist/engine/hmac-verifier.js.map +0 -0
  25. package/dist/engine/immutability.d.ts +0 -0
  26. package/dist/engine/immutability.d.ts.map +0 -0
  27. package/dist/engine/immutability.js +0 -0
  28. package/dist/engine/immutability.js.map +0 -0
  29. package/dist/engine/pattern-matcher.d.ts +0 -0
  30. package/dist/engine/pattern-matcher.d.ts.map +0 -0
  31. package/dist/engine/pattern-matcher.js +0 -0
  32. package/dist/engine/pattern-matcher.js.map +0 -0
  33. package/dist/engine/rule-engine.d.ts +8 -1
  34. package/dist/engine/rule-engine.d.ts.map +1 -1
  35. package/dist/engine/rule-engine.js +18 -3
  36. package/dist/engine/rule-engine.js.map +1 -1
  37. package/dist/engine/session-state.d.ts +0 -0
  38. package/dist/engine/session-state.d.ts.map +0 -0
  39. package/dist/engine/session-state.js +0 -0
  40. package/dist/engine/session-state.js.map +0 -0
  41. package/dist/engine/ship-confidence-gate.d.ts +0 -0
  42. package/dist/engine/ship-confidence-gate.d.ts.map +0 -0
  43. package/dist/engine/ship-confidence-gate.js +0 -0
  44. package/dist/engine/ship-confidence-gate.js.map +0 -0
  45. package/dist/identity/first-run.d.ts +24 -0
  46. package/dist/identity/first-run.d.ts.map +1 -0
  47. package/dist/identity/first-run.js +88 -0
  48. package/dist/identity/first-run.js.map +1 -0
  49. package/dist/identity/nudge.d.ts +29 -0
  50. package/dist/identity/nudge.d.ts.map +1 -0
  51. package/dist/identity/nudge.js +74 -0
  52. package/dist/identity/nudge.js.map +1 -0
  53. package/dist/identity/premium-unlock.d.ts +30 -0
  54. package/dist/identity/premium-unlock.d.ts.map +1 -0
  55. package/dist/identity/premium-unlock.js +65 -0
  56. package/dist/identity/premium-unlock.js.map +1 -0
  57. package/dist/identity/register-client.d.ts +25 -0
  58. package/dist/identity/register-client.d.ts.map +1 -0
  59. package/dist/identity/register-client.js +48 -0
  60. package/dist/identity/register-client.js.map +1 -0
  61. package/dist/identity/telemetry.d.ts +64 -0
  62. package/dist/identity/telemetry.d.ts.map +1 -0
  63. package/dist/identity/telemetry.js +173 -0
  64. package/dist/identity/telemetry.js.map +1 -0
  65. package/dist/index.d.ts +0 -0
  66. package/dist/index.js +75 -1
  67. package/dist/rules/categories.json +0 -0
  68. package/dist/rules/presets.json +0 -0
  69. package/dist/rules/rules.json +153 -42
  70. package/dist/tools/audit.d.ts +0 -0
  71. package/dist/tools/audit.d.ts.map +0 -0
  72. package/dist/tools/audit.js +0 -0
  73. package/dist/tools/audit.js.map +0 -0
  74. package/dist/tools/bypass.d.ts +0 -0
  75. package/dist/tools/bypass.d.ts.map +0 -0
  76. package/dist/tools/bypass.js +0 -0
  77. package/dist/tools/bypass.js.map +0 -0
  78. package/dist/tools/export-attestation.d.ts +0 -0
  79. package/dist/tools/export-attestation.d.ts.map +0 -0
  80. package/dist/tools/export-attestation.js +0 -0
  81. package/dist/tools/export-attestation.js.map +0 -0
  82. package/dist/tools/rules.d.ts +0 -0
  83. package/dist/tools/rules.d.ts.map +0 -0
  84. package/dist/tools/rules.js +0 -0
  85. package/dist/tools/rules.js.map +0 -0
  86. package/dist/tools/ship-confidence.d.ts +0 -0
  87. package/dist/tools/ship-confidence.d.ts.map +0 -0
  88. package/dist/tools/ship-confidence.js +0 -0
  89. package/dist/tools/ship-confidence.js.map +0 -0
  90. package/dist/tools/update.d.ts +0 -0
  91. package/dist/tools/update.d.ts.map +0 -0
  92. package/dist/tools/update.js +0 -0
  93. package/dist/tools/update.js.map +0 -0
  94. package/dist/tools/validate.d.ts +0 -0
  95. package/dist/tools/validate.d.ts.map +0 -0
  96. package/dist/tools/validate.js +0 -0
  97. package/dist/tools/validate.js.map +0 -0
  98. package/dist/types/backend.d.ts +0 -0
  99. package/dist/types/backend.d.ts.map +0 -0
  100. package/dist/types/backend.js +0 -0
  101. package/dist/types/backend.js.map +0 -0
  102. package/package.json +2 -1
@@ -21,7 +21,8 @@
21
21
  "financial-protection",
22
22
  "full-suite",
23
23
  "minimal"
24
- ]
24
+ ],
25
+ "tier": "constitutional"
25
26
  },
26
27
  {
27
28
  "id": "fin-002",
@@ -44,7 +45,8 @@
44
45
  "essential",
45
46
  "financial-protection",
46
47
  "full-suite"
47
- ]
48
+ ],
49
+ "tier": "constitutional"
48
50
  },
49
51
  {
50
52
  "id": "fin-003",
@@ -65,14 +67,15 @@
65
67
  "preset_groups": [
66
68
  "financial-protection",
67
69
  "full-suite"
68
- ]
70
+ ],
71
+ "tier": "constitutional"
69
72
  },
70
73
  {
71
74
  "id": "fin-004",
72
75
  "name": "Crypto Transaction Block",
73
76
  "description": "Block all cryptocurrency transfers, wallet interactions, and token purchases without explicit multi-step human approval",
74
77
  "category": "financial-safety",
75
- "enforcement": "constitutional",
78
+ "enforcement": "standard",
76
79
  "gate_type": "pre-action",
77
80
  "severity": "block",
78
81
  "detection_pattern": "Detects: wallet addresses, ETH/BTC/USDC transfers, DeFi interactions, NFT purchases, gas fee submissions, seed phrase usage",
@@ -87,7 +90,8 @@
87
90
  "preset_groups": [
88
91
  "financial-protection",
89
92
  "full-suite"
90
- ]
93
+ ],
94
+ "tier": "recommended_default"
91
95
  },
92
96
  {
93
97
  "id": "fin-005",
@@ -109,6 +113,7 @@
109
113
  "full-suite"
110
114
  ],
111
115
  "backend_required": true,
116
+ "tier": "premium",
112
117
  "detection_pattern": "[server-side]"
113
118
  },
114
119
  {
@@ -131,6 +136,7 @@
131
136
  "full-suite"
132
137
  ],
133
138
  "backend_required": true,
139
+ "tier": "premium",
134
140
  "detection_pattern": "[server-side]"
135
141
  },
136
142
  {
@@ -154,6 +160,7 @@
154
160
  "developer-safety"
155
161
  ],
156
162
  "backend_required": true,
163
+ "tier": "premium",
157
164
  "detection_pattern": "[server-side]"
158
165
  },
159
166
  {
@@ -176,7 +183,8 @@
176
183
  "financial-protection",
177
184
  "full-suite",
178
185
  "minimal"
179
- ]
186
+ ],
187
+ "tier": "constitutional"
180
188
  },
181
189
  {
182
190
  "id": "fin-009",
@@ -197,7 +205,8 @@
197
205
  "preset_groups": [
198
206
  "financial-protection",
199
207
  "full-suite"
200
- ]
208
+ ],
209
+ "tier": "constitutional"
201
210
  },
202
211
  {
203
212
  "id": "fin-010",
@@ -220,6 +229,7 @@
220
229
  "developer-safety"
221
230
  ],
222
231
  "backend_required": true,
232
+ "tier": "premium",
223
233
  "detection_pattern": "[server-side]"
224
234
  },
225
235
  {
@@ -242,6 +252,7 @@
242
252
  "full-suite"
243
253
  ],
244
254
  "backend_required": true,
255
+ "tier": "premium",
245
256
  "detection_pattern": "[server-side]"
246
257
  },
247
258
  {
@@ -265,6 +276,7 @@
265
276
  "full-suite"
266
277
  ],
267
278
  "backend_required": true,
279
+ "tier": "premium",
268
280
  "detection_pattern": "[server-side]"
269
281
  },
270
282
  {
@@ -288,7 +300,8 @@
288
300
  "developer-safety",
289
301
  "full-suite",
290
302
  "minimal"
291
- ]
303
+ ],
304
+ "tier": "constitutional"
292
305
  },
293
306
  {
294
307
  "id": "dat-002",
@@ -310,7 +323,8 @@
310
323
  "preset_groups": [
311
324
  "essential",
312
325
  "full-suite"
313
- ]
326
+ ],
327
+ "tier": "constitutional"
314
328
  },
315
329
  {
316
330
  "id": "dat-003",
@@ -333,6 +347,7 @@
333
347
  "full-suite"
334
348
  ],
335
349
  "backend_required": true,
350
+ "tier": "premium",
336
351
  "detection_pattern": "[server-side]"
337
352
  },
338
353
  {
@@ -356,7 +371,8 @@
356
371
  "essential",
357
372
  "developer-safety",
358
373
  "full-suite"
359
- ]
374
+ ],
375
+ "tier": "constitutional"
360
376
  },
361
377
  {
362
378
  "id": "dat-005",
@@ -380,6 +396,7 @@
380
396
  "full-suite"
381
397
  ],
382
398
  "backend_required": true,
399
+ "tier": "premium",
383
400
  "detection_pattern": "[server-side]"
384
401
  },
385
402
  {
@@ -401,6 +418,7 @@
401
418
  "full-suite"
402
419
  ],
403
420
  "backend_required": true,
421
+ "tier": "premium",
404
422
  "detection_pattern": "[server-side]"
405
423
  },
406
424
  {
@@ -424,6 +442,7 @@
424
442
  "full-suite"
425
443
  ],
426
444
  "backend_required": true,
445
+ "tier": "premium",
427
446
  "detection_pattern": "[server-side]"
428
447
  },
429
448
  {
@@ -445,6 +464,7 @@
445
464
  "full-suite"
446
465
  ],
447
466
  "backend_required": true,
467
+ "tier": "premium",
448
468
  "detection_pattern": "[server-side]"
449
469
  },
450
470
  {
@@ -466,6 +486,7 @@
466
486
  "full-suite"
467
487
  ],
468
488
  "backend_required": true,
489
+ "tier": "premium",
469
490
  "detection_pattern": "[server-side]"
470
491
  },
471
492
  {
@@ -487,7 +508,8 @@
487
508
  "preset_groups": [
488
509
  "developer-safety",
489
510
  "full-suite"
490
- ]
511
+ ],
512
+ "tier": "constitutional"
491
513
  },
492
514
  {
493
515
  "id": "dat-011",
@@ -508,6 +530,7 @@
508
530
  "full-suite"
509
531
  ],
510
532
  "backend_required": true,
533
+ "tier": "premium",
511
534
  "detection_pattern": "[server-side]"
512
535
  },
513
536
  {
@@ -529,6 +552,7 @@
529
552
  "full-suite"
530
553
  ],
531
554
  "backend_required": true,
555
+ "tier": "premium",
532
556
  "detection_pattern": "[server-side]"
533
557
  },
534
558
  {
@@ -552,7 +576,8 @@
552
576
  "developer-safety",
553
577
  "full-suite",
554
578
  "minimal"
555
- ]
579
+ ],
580
+ "tier": "constitutional"
556
581
  },
557
582
  {
558
583
  "id": "gov-002",
@@ -576,7 +601,8 @@
576
601
  "developer-safety",
577
602
  "full-suite",
578
603
  "minimal"
579
- ]
604
+ ],
605
+ "tier": "constitutional"
580
606
  },
581
607
  {
582
608
  "id": "gov-003",
@@ -598,6 +624,7 @@
598
624
  "full-suite"
599
625
  ],
600
626
  "backend_required": true,
627
+ "tier": "premium",
601
628
  "detection_pattern": "[server-side]"
602
629
  },
603
630
  {
@@ -619,7 +646,8 @@
619
646
  "preset_groups": [
620
647
  "developer-safety",
621
648
  "full-suite"
622
- ]
649
+ ],
650
+ "tier": "constitutional"
623
651
  },
624
652
  {
625
653
  "id": "gov-005",
@@ -640,7 +668,8 @@
640
668
  "preset_groups": [
641
669
  "developer-safety",
642
670
  "full-suite"
643
- ]
671
+ ],
672
+ "tier": "constitutional"
644
673
  },
645
674
  {
646
675
  "id": "gov-006",
@@ -660,7 +689,8 @@
660
689
  ],
661
690
  "preset_groups": [
662
691
  "full-suite"
663
- ]
692
+ ],
693
+ "tier": "constitutional"
664
694
  },
665
695
  {
666
696
  "id": "gov-007",
@@ -682,6 +712,7 @@
682
712
  "full-suite"
683
713
  ],
684
714
  "backend_required": true,
715
+ "tier": "premium",
685
716
  "detection_pattern": "[server-side]"
686
717
  },
687
718
  {
@@ -704,7 +735,8 @@
704
735
  "preset_groups": [
705
736
  "essential",
706
737
  "full-suite"
707
- ]
738
+ ],
739
+ "tier": "constitutional"
708
740
  },
709
741
  {
710
742
  "id": "gov-009",
@@ -726,6 +758,7 @@
726
758
  "full-suite"
727
759
  ],
728
760
  "backend_required": true,
761
+ "tier": "premium",
729
762
  "detection_pattern": "[server-side]"
730
763
  },
731
764
  {
@@ -749,6 +782,7 @@
749
782
  "full-suite"
750
783
  ],
751
784
  "backend_required": true,
785
+ "tier": "premium",
752
786
  "detection_pattern": "[server-side]"
753
787
  },
754
788
  {
@@ -771,6 +805,7 @@
771
805
  "full-suite"
772
806
  ],
773
807
  "backend_required": true,
808
+ "tier": "premium",
774
809
  "detection_pattern": "[server-side]"
775
810
  },
776
811
  {
@@ -793,7 +828,8 @@
793
828
  "essential",
794
829
  "developer-safety",
795
830
  "full-suite"
796
- ]
831
+ ],
832
+ "tier": "constitutional"
797
833
  },
798
834
  {
799
835
  "id": "qlt-001",
@@ -815,6 +851,7 @@
815
851
  "full-suite"
816
852
  ],
817
853
  "backend_required": true,
854
+ "tier": "premium",
818
855
  "detection_pattern": "[server-side]"
819
856
  },
820
857
  {
@@ -838,6 +875,7 @@
838
875
  "full-suite"
839
876
  ],
840
877
  "backend_required": true,
878
+ "tier": "premium",
841
879
  "detection_pattern": "[server-side]"
842
880
  },
843
881
  {
@@ -860,6 +898,7 @@
860
898
  "full-suite"
861
899
  ],
862
900
  "backend_required": true,
901
+ "tier": "premium",
863
902
  "detection_pattern": "[server-side]"
864
903
  },
865
904
  {
@@ -882,6 +921,7 @@
882
921
  "full-suite"
883
922
  ],
884
923
  "backend_required": true,
924
+ "tier": "premium",
885
925
  "detection_pattern": "[server-side]"
886
926
  },
887
927
  {
@@ -904,6 +944,7 @@
904
944
  "full-suite"
905
945
  ],
906
946
  "backend_required": true,
947
+ "tier": "premium",
907
948
  "detection_pattern": "[server-side]"
908
949
  },
909
950
  {
@@ -926,6 +967,7 @@
926
967
  "full-suite"
927
968
  ],
928
969
  "backend_required": true,
970
+ "tier": "premium",
929
971
  "detection_pattern": "[server-side]"
930
972
  },
931
973
  {
@@ -948,6 +990,7 @@
948
990
  "full-suite"
949
991
  ],
950
992
  "backend_required": true,
993
+ "tier": "premium",
951
994
  "detection_pattern": "[server-side]"
952
995
  },
953
996
  {
@@ -970,6 +1013,7 @@
970
1013
  "full-suite"
971
1014
  ],
972
1015
  "backend_required": true,
1016
+ "tier": "premium",
973
1017
  "detection_pattern": "[server-side]"
974
1018
  },
975
1019
  {
@@ -992,6 +1036,7 @@
992
1036
  "full-suite"
993
1037
  ],
994
1038
  "backend_required": true,
1039
+ "tier": "premium",
995
1040
  "detection_pattern": "[server-side]"
996
1041
  },
997
1042
  {
@@ -1014,6 +1059,7 @@
1014
1059
  "full-suite"
1015
1060
  ],
1016
1061
  "backend_required": true,
1062
+ "tier": "premium",
1017
1063
  "detection_pattern": "[server-side]"
1018
1064
  },
1019
1065
  {
@@ -1036,6 +1082,7 @@
1036
1082
  "full-suite"
1037
1083
  ],
1038
1084
  "backend_required": true,
1085
+ "tier": "premium",
1039
1086
  "detection_pattern": "[server-side]"
1040
1087
  },
1041
1088
  {
@@ -1058,6 +1105,7 @@
1058
1105
  "full-suite"
1059
1106
  ],
1060
1107
  "backend_required": true,
1108
+ "tier": "premium",
1061
1109
  "detection_pattern": "[server-side]"
1062
1110
  },
1063
1111
  {
@@ -1065,7 +1113,7 @@
1065
1113
  "name": "Email Review Gate",
1066
1114
  "description": "Block sending any external email drafted by an agent without human review of content, recipients, and subject line",
1067
1115
  "category": "communication-safety",
1068
- "enforcement": "constitutional",
1116
+ "enforcement": "standard",
1069
1117
  "gate_type": "pre-action",
1070
1118
  "severity": "block",
1071
1119
  "detection_pattern": "Detects: SMTP send commands, Gmail API message sends, Postmark/SendGrid single sends, nodemailer send calls with external recipients",
@@ -1079,14 +1127,15 @@
1079
1127
  "preset_groups": [
1080
1128
  "essential",
1081
1129
  "full-suite"
1082
- ]
1130
+ ],
1131
+ "tier": "recommended_default"
1083
1132
  },
1084
1133
  {
1085
1134
  "id": "com-002",
1086
1135
  "name": "Social Media Approval Gate",
1087
1136
  "description": "Block posting, publishing, or scheduling any social media content without human review and approval",
1088
1137
  "category": "communication-safety",
1089
- "enforcement": "constitutional",
1138
+ "enforcement": "standard",
1090
1139
  "gate_type": "pre-action",
1091
1140
  "severity": "block",
1092
1141
  "detection_pattern": "Detects: Twitter/X API post calls, LinkedIn share submissions, Facebook page post API, Instagram media publishes, TikTok upload completions",
@@ -1100,7 +1149,8 @@
1100
1149
  "preset_groups": [
1101
1150
  "essential",
1102
1151
  "full-suite"
1103
- ]
1152
+ ],
1153
+ "tier": "recommended_default"
1104
1154
  },
1105
1155
  {
1106
1156
  "id": "com-003",
@@ -1121,6 +1171,7 @@
1121
1171
  "full-suite"
1122
1172
  ],
1123
1173
  "backend_required": true,
1174
+ "tier": "premium",
1124
1175
  "detection_pattern": "[server-side]"
1125
1176
  },
1126
1177
  {
@@ -1142,6 +1193,7 @@
1142
1193
  "full-suite"
1143
1194
  ],
1144
1195
  "backend_required": true,
1196
+ "tier": "premium",
1145
1197
  "detection_pattern": "[server-side]"
1146
1198
  },
1147
1199
  {
@@ -1149,7 +1201,7 @@
1149
1201
  "name": "Customer Communication Gate",
1150
1202
  "description": "Block any direct communication to customers, clients, or partners initiated by an agent without human sign-off",
1151
1203
  "category": "communication-safety",
1152
- "enforcement": "constitutional",
1204
+ "enforcement": "standard",
1153
1205
  "gate_type": "pre-action",
1154
1206
  "severity": "block",
1155
1207
  "detection_pattern": "Detects: CRM-triggered customer emails, in-app messages sent to user segments, support ticket replies, automated refund communications, contract or invoice emails",
@@ -1163,14 +1215,15 @@
1163
1215
  "preset_groups": [
1164
1216
  "essential",
1165
1217
  "full-suite"
1166
- ]
1218
+ ],
1219
+ "tier": "recommended_default"
1167
1220
  },
1168
1221
  {
1169
1222
  "id": "com-006",
1170
1223
  "name": "Press Release and PR Content Gate",
1171
1224
  "description": "Block publishing or distributing any press release, media statement, or investor communication without executive approval",
1172
1225
  "category": "communication-safety",
1173
- "enforcement": "constitutional",
1226
+ "enforcement": "standard",
1174
1227
  "gate_type": "pre-action",
1175
1228
  "severity": "block",
1176
1229
  "detection_pattern": "Detects: PR Newswire distribution API, Business Wire submissions, media contact outreach with embargo dates, investor relations email sends",
@@ -1183,7 +1236,8 @@
1183
1236
  ],
1184
1237
  "preset_groups": [
1185
1238
  "full-suite"
1186
- ]
1239
+ ],
1240
+ "tier": "recommended_default"
1187
1241
  },
1188
1242
  {
1189
1243
  "id": "com-007",
@@ -1203,7 +1257,8 @@
1203
1257
  ],
1204
1258
  "preset_groups": [
1205
1259
  "full-suite"
1206
- ]
1260
+ ],
1261
+ "tier": "constitutional"
1207
1262
  },
1208
1263
  {
1209
1264
  "id": "com-008",
@@ -1224,6 +1279,7 @@
1224
1279
  "full-suite"
1225
1280
  ],
1226
1281
  "backend_required": true,
1282
+ "tier": "premium",
1227
1283
  "detection_pattern": "[server-side]"
1228
1284
  },
1229
1285
  {
@@ -1231,7 +1287,7 @@
1231
1287
  "name": "Outreach Approval Before Launch",
1232
1288
  "description": "Require explicit go/no-go approval before activating any cold outreach sequence or automated follow-up campaign",
1233
1289
  "category": "communication-safety",
1234
- "enforcement": "constitutional",
1290
+ "enforcement": "standard",
1235
1291
  "gate_type": "pre-action",
1236
1292
  "severity": "block",
1237
1293
  "detection_pattern": "Detects: Instantly.ai campaign activation, Lemlist sequence launch, Apollo.io sequence start, Outreach.io sequence enable, HubSpot sequence activation",
@@ -1245,7 +1301,8 @@
1245
1301
  "preset_groups": [
1246
1302
  "essential",
1247
1303
  "full-suite"
1248
- ]
1304
+ ],
1305
+ "tier": "recommended_default"
1249
1306
  },
1250
1307
  {
1251
1308
  "id": "com-010",
@@ -1266,6 +1323,7 @@
1266
1323
  "full-suite"
1267
1324
  ],
1268
1325
  "backend_required": true,
1326
+ "tier": "premium",
1269
1327
  "detection_pattern": "[server-side]"
1270
1328
  },
1271
1329
  {
@@ -1286,7 +1344,8 @@
1286
1344
  ],
1287
1345
  "preset_groups": [
1288
1346
  "full-suite"
1289
- ]
1347
+ ],
1348
+ "tier": "constitutional"
1290
1349
  },
1291
1350
  {
1292
1351
  "id": "com-012",
@@ -1307,6 +1366,7 @@
1307
1366
  "full-suite"
1308
1367
  ],
1309
1368
  "backend_required": true,
1369
+ "tier": "premium",
1310
1370
  "detection_pattern": "[server-side]"
1311
1371
  },
1312
1372
  {
@@ -1329,6 +1389,7 @@
1329
1389
  "full-suite"
1330
1390
  ],
1331
1391
  "backend_required": true,
1392
+ "tier": "premium",
1332
1393
  "detection_pattern": "[server-side]"
1333
1394
  },
1334
1395
  {
@@ -1350,6 +1411,7 @@
1350
1411
  "full-suite"
1351
1412
  ],
1352
1413
  "backend_required": true,
1414
+ "tier": "premium",
1353
1415
  "detection_pattern": "[server-side]"
1354
1416
  },
1355
1417
  {
@@ -1371,6 +1433,7 @@
1371
1433
  "full-suite"
1372
1434
  ],
1373
1435
  "backend_required": true,
1436
+ "tier": "premium",
1374
1437
  "detection_pattern": "[server-side]"
1375
1438
  },
1376
1439
  {
@@ -1393,6 +1456,7 @@
1393
1456
  "full-suite"
1394
1457
  ],
1395
1458
  "backend_required": true,
1459
+ "tier": "premium",
1396
1460
  "detection_pattern": "[server-side]"
1397
1461
  },
1398
1462
  {
@@ -1415,6 +1479,7 @@
1415
1479
  "full-suite"
1416
1480
  ],
1417
1481
  "backend_required": true,
1482
+ "tier": "premium",
1418
1483
  "detection_pattern": "[server-side]"
1419
1484
  },
1420
1485
  {
@@ -1437,6 +1502,7 @@
1437
1502
  "full-suite"
1438
1503
  ],
1439
1504
  "backend_required": true,
1505
+ "tier": "premium",
1440
1506
  "detection_pattern": "[server-side]"
1441
1507
  },
1442
1508
  {
@@ -1459,6 +1525,7 @@
1459
1525
  "full-suite"
1460
1526
  ],
1461
1527
  "backend_required": true,
1528
+ "tier": "premium",
1462
1529
  "detection_pattern": "[server-side]"
1463
1530
  },
1464
1531
  {
@@ -1481,6 +1548,7 @@
1481
1548
  "full-suite"
1482
1549
  ],
1483
1550
  "backend_required": true,
1551
+ "tier": "premium",
1484
1552
  "detection_pattern": "[server-side]"
1485
1553
  },
1486
1554
  {
@@ -1488,7 +1556,7 @@
1488
1556
  "name": "No Fabricated Statistics",
1489
1557
  "description": "Block agent from presenting invented numbers, market sizes, or performance statistics as factual claims",
1490
1558
  "category": "knowledge-protocol",
1491
- "enforcement": "constitutional",
1559
+ "enforcement": "standard",
1492
1560
  "gate_type": "post-action",
1493
1561
  "severity": "block",
1494
1562
  "detection_pattern": "Detects: market size claims without cited research, performance benchmarks not sourced to a test run, conversion rates stated as fact without underlying data",
@@ -1501,7 +1569,8 @@
1501
1569
  ],
1502
1570
  "preset_groups": [
1503
1571
  "full-suite"
1504
- ]
1572
+ ],
1573
+ "tier": "recommended_default"
1505
1574
  },
1506
1575
  {
1507
1576
  "id": "know-010",
@@ -1522,6 +1591,7 @@
1522
1591
  "full-suite"
1523
1592
  ],
1524
1593
  "backend_required": true,
1594
+ "tier": "premium",
1525
1595
  "detection_pattern": "[server-side]"
1526
1596
  },
1527
1597
  {
@@ -1543,6 +1613,7 @@
1543
1613
  "full-suite"
1544
1614
  ],
1545
1615
  "backend_required": true,
1616
+ "tier": "premium",
1546
1617
  "detection_pattern": "[server-side]"
1547
1618
  },
1548
1619
  {
@@ -1565,6 +1636,7 @@
1565
1636
  "full-suite"
1566
1637
  ],
1567
1638
  "backend_required": true,
1639
+ "tier": "premium",
1568
1640
  "detection_pattern": "[server-side]"
1569
1641
  },
1570
1642
  {
@@ -1588,6 +1660,7 @@
1588
1660
  "full-suite"
1589
1661
  ],
1590
1662
  "backend_required": true,
1663
+ "tier": "premium",
1591
1664
  "detection_pattern": "[server-side]"
1592
1665
  },
1593
1666
  {
@@ -1612,6 +1685,7 @@
1612
1685
  "full-suite"
1613
1686
  ],
1614
1687
  "backend_required": true,
1688
+ "tier": "premium",
1615
1689
  "detection_pattern": "[server-side]"
1616
1690
  },
1617
1691
  {
@@ -1635,6 +1709,7 @@
1635
1709
  "full-suite"
1636
1710
  ],
1637
1711
  "backend_required": true,
1712
+ "tier": "premium",
1638
1713
  "detection_pattern": "[server-side]"
1639
1714
  },
1640
1715
  {
@@ -1658,6 +1733,7 @@
1658
1733
  "full-suite"
1659
1734
  ],
1660
1735
  "backend_required": true,
1736
+ "tier": "premium",
1661
1737
  "detection_pattern": "[server-side]"
1662
1738
  },
1663
1739
  {
@@ -1680,6 +1756,7 @@
1680
1756
  "full-suite"
1681
1757
  ],
1682
1758
  "backend_required": true,
1759
+ "tier": "premium",
1683
1760
  "detection_pattern": "[server-side]"
1684
1761
  },
1685
1762
  {
@@ -1702,6 +1779,7 @@
1702
1779
  "full-suite"
1703
1780
  ],
1704
1781
  "backend_required": true,
1782
+ "tier": "premium",
1705
1783
  "detection_pattern": "[server-side]"
1706
1784
  },
1707
1785
  {
@@ -1725,6 +1803,7 @@
1725
1803
  "full-suite"
1726
1804
  ],
1727
1805
  "backend_required": true,
1806
+ "tier": "premium",
1728
1807
  "detection_pattern": "[server-side]"
1729
1808
  },
1730
1809
  {
@@ -1748,6 +1827,7 @@
1748
1827
  "full-suite"
1749
1828
  ],
1750
1829
  "backend_required": true,
1830
+ "tier": "premium",
1751
1831
  "detection_pattern": "[server-side]"
1752
1832
  },
1753
1833
  {
@@ -1771,6 +1851,7 @@
1771
1851
  "full-suite"
1772
1852
  ],
1773
1853
  "backend_required": true,
1854
+ "tier": "premium",
1774
1855
  "detection_pattern": "[server-side]"
1775
1856
  },
1776
1857
  {
@@ -1793,6 +1874,7 @@
1793
1874
  "full-suite"
1794
1875
  ],
1795
1876
  "backend_required": true,
1877
+ "tier": "premium",
1796
1878
  "detection_pattern": "[server-side]"
1797
1879
  },
1798
1880
  {
@@ -1816,6 +1898,7 @@
1816
1898
  "full-suite"
1817
1899
  ],
1818
1900
  "backend_required": true,
1901
+ "tier": "premium",
1819
1902
  "detection_pattern": "[server-side]"
1820
1903
  },
1821
1904
  {
@@ -1839,6 +1922,7 @@
1839
1922
  "full-suite"
1840
1923
  ],
1841
1924
  "backend_required": true,
1925
+ "tier": "premium",
1842
1926
  "detection_pattern": "[server-side]"
1843
1927
  },
1844
1928
  {
@@ -1861,7 +1945,8 @@
1861
1945
  "essential",
1862
1946
  "developer-safety",
1863
1947
  "full-suite"
1864
- ]
1948
+ ],
1949
+ "tier": "constitutional"
1865
1950
  },
1866
1951
  {
1867
1952
  "id": "sec-002",
@@ -1882,7 +1967,8 @@
1882
1967
  "preset_groups": [
1883
1968
  "developer-safety",
1884
1969
  "full-suite"
1885
- ]
1970
+ ],
1971
+ "tier": "constitutional"
1886
1972
  },
1887
1973
  {
1888
1974
  "id": "sec-003",
@@ -1904,6 +1990,7 @@
1904
1990
  "full-suite"
1905
1991
  ],
1906
1992
  "backend_required": true,
1993
+ "tier": "premium",
1907
1994
  "detection_pattern": "[server-side]"
1908
1995
  },
1909
1996
  {
@@ -1925,7 +2012,8 @@
1925
2012
  "preset_groups": [
1926
2013
  "developer-safety",
1927
2014
  "full-suite"
1928
- ]
2015
+ ],
2016
+ "tier": "constitutional"
1929
2017
  },
1930
2018
  {
1931
2019
  "id": "sec-005",
@@ -1947,6 +2035,7 @@
1947
2035
  "full-suite"
1948
2036
  ],
1949
2037
  "backend_required": true,
2038
+ "tier": "premium",
1950
2039
  "detection_pattern": "[server-side]"
1951
2040
  },
1952
2041
  {
@@ -1968,7 +2057,8 @@
1968
2057
  "preset_groups": [
1969
2058
  "developer-safety",
1970
2059
  "full-suite"
1971
- ]
2060
+ ],
2061
+ "tier": "constitutional"
1972
2062
  },
1973
2063
  {
1974
2064
  "id": "sec-007",
@@ -1990,6 +2080,7 @@
1990
2080
  "full-suite"
1991
2081
  ],
1992
2082
  "backend_required": true,
2083
+ "tier": "premium",
1993
2084
  "detection_pattern": "[server-side]"
1994
2085
  },
1995
2086
  {
@@ -2012,6 +2103,7 @@
2012
2103
  "full-suite"
2013
2104
  ],
2014
2105
  "backend_required": true,
2106
+ "tier": "premium",
2015
2107
  "detection_pattern": "[server-side]"
2016
2108
  },
2017
2109
  {
@@ -2035,6 +2127,7 @@
2035
2127
  "full-suite"
2036
2128
  ],
2037
2129
  "backend_required": true,
2130
+ "tier": "premium",
2038
2131
  "detection_pattern": "[server-side]"
2039
2132
  },
2040
2133
  {
@@ -2042,10 +2135,9 @@
2042
2135
  "name": "No Banned Model Providers",
2043
2136
  "description": "Block agent from routing requests to providers on the organisation's banned list (e.g. providers with IP leakage concerns)",
2044
2137
  "category": "security",
2045
- "enforcement": "constitutional",
2138
+ "enforcement": "standard",
2046
2139
  "gate_type": "pre-action",
2047
2140
  "severity": "block",
2048
- "detection_pattern": "Detects: API calls to Kimi, MiniMax, DeepSeek, or other banned provider endpoints; model IDs matching banned provider prefixes in routing configs",
2049
2141
  "example_blocked": "Agent routes a prompt containing proprietary code to a DeepSeek API endpoint to save costs",
2050
2142
  "example_allowed": "Agent routes all requests through approved providers (Anthropic, Google, OpenRouter with approved models only)",
2051
2143
  "tags": [
@@ -2056,7 +2148,20 @@
2056
2148
  "preset_groups": [
2057
2149
  "developer-safety",
2058
2150
  "full-suite"
2059
- ]
2151
+ ],
2152
+ "tier": "premium",
2153
+ "backend_required": true,
2154
+ "user_configurable": true,
2155
+ "config_schema": {
2156
+ "banned_providers": {
2157
+ "type": "array",
2158
+ "items": {
2159
+ "type": "string"
2160
+ },
2161
+ "description": "List of model provider substrings to block (e.g. [\"deepseek\", \"qwen\"]). Customer-supplied."
2162
+ }
2163
+ },
2164
+ "detection_pattern": "[server-side]"
2060
2165
  },
2061
2166
  {
2062
2167
  "id": "sec-011",
@@ -2077,7 +2182,8 @@
2077
2182
  "preset_groups": [
2078
2183
  "developer-safety",
2079
2184
  "full-suite"
2080
- ]
2185
+ ],
2186
+ "tier": "constitutional"
2081
2187
  },
2082
2188
  {
2083
2189
  "id": "sec-012",
@@ -2099,6 +2205,7 @@
2099
2205
  "full-suite"
2100
2206
  ],
2101
2207
  "backend_required": true,
2208
+ "tier": "premium",
2102
2209
  "detection_pattern": "[server-side]"
2103
2210
  },
2104
2211
  {
@@ -2120,6 +2227,7 @@
2120
2227
  "full-suite"
2121
2228
  ],
2122
2229
  "backend_required": true,
2230
+ "tier": "premium",
2123
2231
  "detection_pattern": "[server-side]"
2124
2232
  },
2125
2233
  {
@@ -2127,7 +2235,7 @@
2127
2235
  "name": "GDPR Data Handling Protocol",
2128
2236
  "description": "Require explicit lawful basis documentation before any collection, processing, or storage of EU resident personal data",
2129
2237
  "category": "compliance",
2130
- "enforcement": "constitutional",
2238
+ "enforcement": "standard",
2131
2239
  "gate_type": "pre-action",
2132
2240
  "severity": "block",
2133
2241
  "detection_pattern": "Detects: EU resident data stored without consent record, PII processed without documented lawful basis, data transferred outside EU/EEA without Standard Contractual Clauses",
@@ -2140,7 +2248,8 @@
2140
2248
  ],
2141
2249
  "preset_groups": [
2142
2250
  "full-suite"
2143
- ]
2251
+ ],
2252
+ "tier": "recommended_default"
2144
2253
  },
2145
2254
  {
2146
2255
  "id": "cmp-003",
@@ -2161,6 +2270,7 @@
2161
2270
  "full-suite"
2162
2271
  ],
2163
2272
  "backend_required": true,
2273
+ "tier": "premium",
2164
2274
  "detection_pattern": "[server-side]"
2165
2275
  },
2166
2276
  {
@@ -2182,6 +2292,7 @@
2182
2292
  "full-suite"
2183
2293
  ],
2184
2294
  "backend_required": true,
2295
+ "tier": "premium",
2185
2296
  "detection_pattern": "[server-side]"
2186
2297
  }
2187
2298
  ]