@highflame/policy 2.2.23 → 2.2.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.
- package/_schemas/ai_gateway/context.json +144 -10
- package/_schemas/ai_gateway/templates/defaults/malicious_package.cedar +59 -0
- package/_schemas/ai_gateway/templates/templates.json +14 -0
- package/_schemas/guardrails/context.json +222 -86
- package/_schemas/overwatch/context.json +128 -33
- package/dist/ai_gateway-context.gen.d.ts +11 -1
- package/dist/ai_gateway-context.gen.js +20 -0
- package/dist/ai_gateway-defaults.gen.js +83 -0
- package/dist/ai_gateway-detectors.gen.js +24 -0
- package/dist/guardrails-context.gen.d.ts +5 -1
- package/dist/guardrails-context.gen.js +8 -0
- package/dist/guardrails-detectors.gen.js +5 -1
- package/dist/overwatch-context.gen.d.ts +11 -1
- package/dist/overwatch-context.gen.js +20 -0
- package/dist/overwatch-defaults.gen.d.ts +1 -1
- package/dist/overwatch-defaults.gen.js +93 -0
- package/dist/overwatch-detectors.gen.js +24 -0
- package/dist/service-schemas.gen.js +40 -2
- package/package.json +1 -1
|
@@ -203,25 +203,29 @@
|
|
|
203
203
|
"key": "injection_pulse_score",
|
|
204
204
|
"type": "number",
|
|
205
205
|
"required": false,
|
|
206
|
-
"description": "Highflame single-turn classifier score for prompt injection (0-100). Raw score from Pulse detector before combination with deep-context. Use for per-detector policy control"
|
|
206
|
+
"description": "Highflame single-turn classifier score for prompt injection (0-100). Raw score from Pulse detector before combination with deep-context. Use for per-detector policy control",
|
|
207
|
+
"range": "0-100"
|
|
207
208
|
},
|
|
208
209
|
{
|
|
209
210
|
"key": "injection_deep_context_score",
|
|
210
211
|
"type": "number",
|
|
211
212
|
"required": false,
|
|
212
|
-
"description": "DeepContext multi-turn analyzer score for prompt injection (0-100). Tracks injection patterns across conversation history. Generally higher confidence than single-turn"
|
|
213
|
+
"description": "DeepContext multi-turn analyzer score for prompt injection (0-100). Tracks injection patterns across conversation history. Generally higher confidence than single-turn",
|
|
214
|
+
"range": "0-100"
|
|
213
215
|
},
|
|
214
216
|
{
|
|
215
217
|
"key": "jailbreak_pulse_score",
|
|
216
218
|
"type": "number",
|
|
217
219
|
"required": false,
|
|
218
|
-
"description": "Highflame single-turn classifier score for jailbreak attempts (0-100). Raw score from Pulse detector before combination with deep-context"
|
|
220
|
+
"description": "Highflame single-turn classifier score for jailbreak attempts (0-100). Raw score from Pulse detector before combination with deep-context",
|
|
221
|
+
"range": "0-100"
|
|
219
222
|
},
|
|
220
223
|
{
|
|
221
224
|
"key": "jailbreak_deep_context_score",
|
|
222
225
|
"type": "number",
|
|
223
226
|
"required": false,
|
|
224
|
-
"description": "DeepContext multi-turn analyzer score for jailbreak attempts (0-100). Detects jailbreak escalation patterns across conversation turns"
|
|
227
|
+
"description": "DeepContext multi-turn analyzer score for jailbreak attempts (0-100). Detects jailbreak escalation patterns across conversation turns",
|
|
228
|
+
"range": "0-100"
|
|
225
229
|
},
|
|
226
230
|
{
|
|
227
231
|
"key": "indirect_injection_score",
|
|
@@ -275,31 +279,36 @@
|
|
|
275
279
|
"key": "session_max_injection_score",
|
|
276
280
|
"type": "number",
|
|
277
281
|
"required": false,
|
|
278
|
-
"description": "Highest prompt injection score seen in any turn of the session (0-100). Use for tiered responses: >75 hard block, >50 restrict permissions"
|
|
282
|
+
"description": "Highest prompt injection score seen in any turn of the session (0-100). Use for tiered responses: >75 hard block, >50 restrict permissions",
|
|
283
|
+
"range": "0-100"
|
|
279
284
|
},
|
|
280
285
|
{
|
|
281
286
|
"key": "session_max_jailbreak_score",
|
|
282
287
|
"type": "number",
|
|
283
288
|
"required": false,
|
|
284
|
-
"description": "Highest jailbreak detection score seen in any turn of the session (0-100)"
|
|
289
|
+
"description": "Highest jailbreak detection score seen in any turn of the session (0-100)",
|
|
290
|
+
"range": "0-100"
|
|
285
291
|
},
|
|
286
292
|
{
|
|
287
293
|
"key": "session_max_command_injection_score",
|
|
288
294
|
"type": "number",
|
|
289
295
|
"required": false,
|
|
290
|
-
"description": "Highest command injection score seen in any turn of the session (0-100)"
|
|
296
|
+
"description": "Highest command injection score seen in any turn of the session (0-100)",
|
|
297
|
+
"range": "0-100"
|
|
291
298
|
},
|
|
292
299
|
{
|
|
293
300
|
"key": "session_max_pii_score",
|
|
294
301
|
"type": "number",
|
|
295
302
|
"required": false,
|
|
296
|
-
"description": "Highest PII risk score seen in any turn of the session (0-100)"
|
|
303
|
+
"description": "Highest PII risk score seen in any turn of the session (0-100)",
|
|
304
|
+
"range": "0-100"
|
|
297
305
|
},
|
|
298
306
|
{
|
|
299
307
|
"key": "session_max_secret_score",
|
|
300
308
|
"type": "number",
|
|
301
309
|
"required": false,
|
|
302
|
-
"description": "Highest secret detection score seen in any turn of the session (0-100)"
|
|
310
|
+
"description": "Highest secret detection score seen in any turn of the session (0-100)",
|
|
311
|
+
"range": "0-100"
|
|
303
312
|
},
|
|
304
313
|
{
|
|
305
314
|
"key": "session_cumulative_risk_score",
|
|
@@ -527,25 +536,29 @@
|
|
|
527
536
|
"key": "injection_pulse_score",
|
|
528
537
|
"type": "number",
|
|
529
538
|
"required": false,
|
|
530
|
-
"description": "Highflame single-turn classifier score for prompt injection in tool arguments (0-100). Raw score from Pulse detector before combination with deep-context"
|
|
539
|
+
"description": "Highflame single-turn classifier score for prompt injection in tool arguments (0-100). Raw score from Pulse detector before combination with deep-context",
|
|
540
|
+
"range": "0-100"
|
|
531
541
|
},
|
|
532
542
|
{
|
|
533
543
|
"key": "injection_deep_context_score",
|
|
534
544
|
"type": "number",
|
|
535
545
|
"required": false,
|
|
536
|
-
"description": "DeepContext multi-turn analyzer score for prompt injection in tool arguments (0-100). Tracks injection patterns across tool call history"
|
|
546
|
+
"description": "DeepContext multi-turn analyzer score for prompt injection in tool arguments (0-100). Tracks injection patterns across tool call history",
|
|
547
|
+
"range": "0-100"
|
|
537
548
|
},
|
|
538
549
|
{
|
|
539
550
|
"key": "jailbreak_pulse_score",
|
|
540
551
|
"type": "number",
|
|
541
552
|
"required": false,
|
|
542
|
-
"description": "Highflame single-turn classifier score for jailbreak in tool arguments (0-100). Raw score from Pulse detector before combination with deep-context"
|
|
553
|
+
"description": "Highflame single-turn classifier score for jailbreak in tool arguments (0-100). Raw score from Pulse detector before combination with deep-context",
|
|
554
|
+
"range": "0-100"
|
|
543
555
|
},
|
|
544
556
|
{
|
|
545
557
|
"key": "jailbreak_deep_context_score",
|
|
546
558
|
"type": "number",
|
|
547
559
|
"required": false,
|
|
548
|
-
"description": "DeepContext multi-turn analyzer score for jailbreak in tool arguments (0-100). Detects jailbreak escalation patterns across tool call turns"
|
|
560
|
+
"description": "DeepContext multi-turn analyzer score for jailbreak in tool arguments (0-100). Detects jailbreak escalation patterns across tool call turns",
|
|
561
|
+
"range": "0-100"
|
|
549
562
|
},
|
|
550
563
|
{
|
|
551
564
|
"key": "tool_poisoning_score",
|
|
@@ -649,6 +662,68 @@
|
|
|
649
662
|
"required": false,
|
|
650
663
|
"description": "All operation classes observed in the tool call. Subset of: 'readonly', 'write_enabling', 'execute_enabling', 'network_access', 'unknown'. 'unknown' appears when any unrecognized or variable-expanded command was seen."
|
|
651
664
|
},
|
|
665
|
+
{
|
|
666
|
+
"key": "package_install_detected",
|
|
667
|
+
"type": "boolean",
|
|
668
|
+
"required": false,
|
|
669
|
+
"description": "True iff a package install/download command was recognized in the tool call arguments."
|
|
670
|
+
},
|
|
671
|
+
{
|
|
672
|
+
"key": "malicious_package_detected",
|
|
673
|
+
"type": "boolean",
|
|
674
|
+
"required": false,
|
|
675
|
+
"description": "True iff any referenced package has a known-malicious (MAL-) OSV advisory."
|
|
676
|
+
},
|
|
677
|
+
{
|
|
678
|
+
"key": "malicious_package_score",
|
|
679
|
+
"type": "number",
|
|
680
|
+
"required": false,
|
|
681
|
+
"description": "100 when a malicious package was detected, 0 otherwise.",
|
|
682
|
+
"range": "0-100"
|
|
683
|
+
},
|
|
684
|
+
{
|
|
685
|
+
"key": "malicious_packages",
|
|
686
|
+
"type": "array",
|
|
687
|
+
"required": false,
|
|
688
|
+
"description": "Malicious packages as ecosystem/name[@version] strings."
|
|
689
|
+
},
|
|
690
|
+
{
|
|
691
|
+
"key": "packages_checked",
|
|
692
|
+
"type": "number",
|
|
693
|
+
"required": false,
|
|
694
|
+
"description": "Number of unique packages checked against osv.dev."
|
|
695
|
+
},
|
|
696
|
+
{
|
|
697
|
+
"key": "package_names",
|
|
698
|
+
"type": "array",
|
|
699
|
+
"required": false,
|
|
700
|
+
"description": "Names of all packages parsed from install commands (without ecosystem prefix)."
|
|
701
|
+
},
|
|
702
|
+
{
|
|
703
|
+
"key": "package_ecosystems",
|
|
704
|
+
"type": "array",
|
|
705
|
+
"required": false,
|
|
706
|
+
"description": "Unique package ecosystems seen in this event, e.g. 'PyPI', 'npm'."
|
|
707
|
+
},
|
|
708
|
+
{
|
|
709
|
+
"key": "package_advisory_count",
|
|
710
|
+
"type": "number",
|
|
711
|
+
"required": false,
|
|
712
|
+
"description": "Total non-malicious OSV advisories (GHSA- / CVE- IDs) found across all checked packages."
|
|
713
|
+
},
|
|
714
|
+
{
|
|
715
|
+
"key": "package_risk_score",
|
|
716
|
+
"type": "number",
|
|
717
|
+
"required": false,
|
|
718
|
+
"description": "Graduated supply-chain risk score (0-100). 100 when any malicious package is found.",
|
|
719
|
+
"range": "0-100"
|
|
720
|
+
},
|
|
721
|
+
{
|
|
722
|
+
"key": "package_check_status",
|
|
723
|
+
"type": "string",
|
|
724
|
+
"required": false,
|
|
725
|
+
"description": "Set to 'degraded' when the osv.dev lookup failed (fail-open); empty otherwise."
|
|
726
|
+
},
|
|
652
727
|
{
|
|
653
728
|
"key": "session_pii_detected",
|
|
654
729
|
"type": "boolean",
|
|
@@ -695,31 +770,36 @@
|
|
|
695
770
|
"key": "session_max_injection_score",
|
|
696
771
|
"type": "number",
|
|
697
772
|
"required": false,
|
|
698
|
-
"description": "Highest prompt injection score seen in any turn of the session (0-100). Use for tiered responses: >75 hard block, >50 restrict permissions"
|
|
773
|
+
"description": "Highest prompt injection score seen in any turn of the session (0-100). Use for tiered responses: >75 hard block, >50 restrict permissions",
|
|
774
|
+
"range": "0-100"
|
|
699
775
|
},
|
|
700
776
|
{
|
|
701
777
|
"key": "session_max_jailbreak_score",
|
|
702
778
|
"type": "number",
|
|
703
779
|
"required": false,
|
|
704
|
-
"description": "Highest jailbreak detection score seen in any turn of the session (0-100)"
|
|
780
|
+
"description": "Highest jailbreak detection score seen in any turn of the session (0-100)",
|
|
781
|
+
"range": "0-100"
|
|
705
782
|
},
|
|
706
783
|
{
|
|
707
784
|
"key": "session_max_command_injection_score",
|
|
708
785
|
"type": "number",
|
|
709
786
|
"required": false,
|
|
710
|
-
"description": "Highest command injection score seen in any turn of the session (0-100)"
|
|
787
|
+
"description": "Highest command injection score seen in any turn of the session (0-100)",
|
|
788
|
+
"range": "0-100"
|
|
711
789
|
},
|
|
712
790
|
{
|
|
713
791
|
"key": "session_max_pii_score",
|
|
714
792
|
"type": "number",
|
|
715
793
|
"required": false,
|
|
716
|
-
"description": "Highest PII risk score seen in any turn of the session (0-100)"
|
|
794
|
+
"description": "Highest PII risk score seen in any turn of the session (0-100)",
|
|
795
|
+
"range": "0-100"
|
|
717
796
|
},
|
|
718
797
|
{
|
|
719
798
|
"key": "session_max_secret_score",
|
|
720
799
|
"type": "number",
|
|
721
800
|
"required": false,
|
|
722
|
-
"description": "Highest secret detection score seen in any turn of the session (0-100)"
|
|
801
|
+
"description": "Highest secret detection score seen in any turn of the session (0-100)",
|
|
802
|
+
"range": "0-100"
|
|
723
803
|
},
|
|
724
804
|
{
|
|
725
805
|
"key": "session_cumulative_risk_score",
|
|
@@ -899,31 +979,36 @@
|
|
|
899
979
|
"key": "session_max_injection_score",
|
|
900
980
|
"type": "number",
|
|
901
981
|
"required": false,
|
|
902
|
-
"description": "Highest prompt injection score seen in any turn of the session (0-100). Use for tiered responses: >75 hard block, >50 restrict permissions"
|
|
982
|
+
"description": "Highest prompt injection score seen in any turn of the session (0-100). Use for tiered responses: >75 hard block, >50 restrict permissions",
|
|
983
|
+
"range": "0-100"
|
|
903
984
|
},
|
|
904
985
|
{
|
|
905
986
|
"key": "session_max_jailbreak_score",
|
|
906
987
|
"type": "number",
|
|
907
988
|
"required": false,
|
|
908
|
-
"description": "Highest jailbreak detection score seen in any turn of the session (0-100)"
|
|
989
|
+
"description": "Highest jailbreak detection score seen in any turn of the session (0-100)",
|
|
990
|
+
"range": "0-100"
|
|
909
991
|
},
|
|
910
992
|
{
|
|
911
993
|
"key": "session_max_command_injection_score",
|
|
912
994
|
"type": "number",
|
|
913
995
|
"required": false,
|
|
914
|
-
"description": "Highest command injection score seen in any turn of the session (0-100)"
|
|
996
|
+
"description": "Highest command injection score seen in any turn of the session (0-100)",
|
|
997
|
+
"range": "0-100"
|
|
915
998
|
},
|
|
916
999
|
{
|
|
917
1000
|
"key": "session_max_pii_score",
|
|
918
1001
|
"type": "number",
|
|
919
1002
|
"required": false,
|
|
920
|
-
"description": "Highest PII risk score seen in any turn of the session (0-100)"
|
|
1003
|
+
"description": "Highest PII risk score seen in any turn of the session (0-100)",
|
|
1004
|
+
"range": "0-100"
|
|
921
1005
|
},
|
|
922
1006
|
{
|
|
923
1007
|
"key": "session_max_secret_score",
|
|
924
1008
|
"type": "number",
|
|
925
1009
|
"required": false,
|
|
926
|
-
"description": "Highest secret detection score seen in any turn of the session (0-100)"
|
|
1010
|
+
"description": "Highest secret detection score seen in any turn of the session (0-100)",
|
|
1011
|
+
"range": "0-100"
|
|
927
1012
|
},
|
|
928
1013
|
{
|
|
929
1014
|
"key": "session_cumulative_risk_score",
|
|
@@ -1103,31 +1188,36 @@
|
|
|
1103
1188
|
"key": "session_max_injection_score",
|
|
1104
1189
|
"type": "number",
|
|
1105
1190
|
"required": false,
|
|
1106
|
-
"description": "Highest prompt injection score seen in any turn of the session (0-100). Use for tiered responses: >75 hard block, >50 restrict permissions"
|
|
1191
|
+
"description": "Highest prompt injection score seen in any turn of the session (0-100). Use for tiered responses: >75 hard block, >50 restrict permissions",
|
|
1192
|
+
"range": "0-100"
|
|
1107
1193
|
},
|
|
1108
1194
|
{
|
|
1109
1195
|
"key": "session_max_jailbreak_score",
|
|
1110
1196
|
"type": "number",
|
|
1111
1197
|
"required": false,
|
|
1112
|
-
"description": "Highest jailbreak detection score seen in any turn of the session (0-100)"
|
|
1198
|
+
"description": "Highest jailbreak detection score seen in any turn of the session (0-100)",
|
|
1199
|
+
"range": "0-100"
|
|
1113
1200
|
},
|
|
1114
1201
|
{
|
|
1115
1202
|
"key": "session_max_command_injection_score",
|
|
1116
1203
|
"type": "number",
|
|
1117
1204
|
"required": false,
|
|
1118
|
-
"description": "Highest command injection score seen in any turn of the session (0-100)"
|
|
1205
|
+
"description": "Highest command injection score seen in any turn of the session (0-100)",
|
|
1206
|
+
"range": "0-100"
|
|
1119
1207
|
},
|
|
1120
1208
|
{
|
|
1121
1209
|
"key": "session_max_pii_score",
|
|
1122
1210
|
"type": "number",
|
|
1123
1211
|
"required": false,
|
|
1124
|
-
"description": "Highest PII risk score seen in any turn of the session (0-100)"
|
|
1212
|
+
"description": "Highest PII risk score seen in any turn of the session (0-100)",
|
|
1213
|
+
"range": "0-100"
|
|
1125
1214
|
},
|
|
1126
1215
|
{
|
|
1127
1216
|
"key": "session_max_secret_score",
|
|
1128
1217
|
"type": "number",
|
|
1129
1218
|
"required": false,
|
|
1130
|
-
"description": "Highest secret detection score seen in any turn of the session (0-100)"
|
|
1219
|
+
"description": "Highest secret detection score seen in any turn of the session (0-100)",
|
|
1220
|
+
"range": "0-100"
|
|
1131
1221
|
},
|
|
1132
1222
|
{
|
|
1133
1223
|
"key": "session_cumulative_risk_score",
|
|
@@ -1313,31 +1403,36 @@
|
|
|
1313
1403
|
"key": "session_max_injection_score",
|
|
1314
1404
|
"type": "number",
|
|
1315
1405
|
"required": false,
|
|
1316
|
-
"description": "Highest prompt injection score seen in any turn of the session (0-100). Use for tiered responses: >75 hard block, >50 restrict permissions"
|
|
1406
|
+
"description": "Highest prompt injection score seen in any turn of the session (0-100). Use for tiered responses: >75 hard block, >50 restrict permissions",
|
|
1407
|
+
"range": "0-100"
|
|
1317
1408
|
},
|
|
1318
1409
|
{
|
|
1319
1410
|
"key": "session_max_jailbreak_score",
|
|
1320
1411
|
"type": "number",
|
|
1321
1412
|
"required": false,
|
|
1322
|
-
"description": "Highest jailbreak detection score seen in any turn of the session (0-100)"
|
|
1413
|
+
"description": "Highest jailbreak detection score seen in any turn of the session (0-100)",
|
|
1414
|
+
"range": "0-100"
|
|
1323
1415
|
},
|
|
1324
1416
|
{
|
|
1325
1417
|
"key": "session_max_command_injection_score",
|
|
1326
1418
|
"type": "number",
|
|
1327
1419
|
"required": false,
|
|
1328
|
-
"description": "Highest command injection score seen in any turn of the session (0-100)"
|
|
1420
|
+
"description": "Highest command injection score seen in any turn of the session (0-100)",
|
|
1421
|
+
"range": "0-100"
|
|
1329
1422
|
},
|
|
1330
1423
|
{
|
|
1331
1424
|
"key": "session_max_pii_score",
|
|
1332
1425
|
"type": "number",
|
|
1333
1426
|
"required": false,
|
|
1334
|
-
"description": "Highest PII risk score seen in any turn of the session (0-100)"
|
|
1427
|
+
"description": "Highest PII risk score seen in any turn of the session (0-100)",
|
|
1428
|
+
"range": "0-100"
|
|
1335
1429
|
},
|
|
1336
1430
|
{
|
|
1337
1431
|
"key": "session_max_secret_score",
|
|
1338
1432
|
"type": "number",
|
|
1339
1433
|
"required": false,
|
|
1340
|
-
"description": "Highest secret detection score seen in any turn of the session (0-100)"
|
|
1434
|
+
"description": "Highest secret detection score seen in any turn of the session (0-100)",
|
|
1435
|
+
"range": "0-100"
|
|
1341
1436
|
},
|
|
1342
1437
|
{
|
|
1343
1438
|
"key": "session_cumulative_risk_score",
|
|
@@ -17,6 +17,9 @@ export declare const AiGatewayContextKey: {
|
|
|
17
17
|
readonly JailbreakScore: "jailbreak_score";
|
|
18
18
|
readonly LoopCount: "loop_count";
|
|
19
19
|
readonly LoopDetected: "loop_detected";
|
|
20
|
+
readonly MaliciousPackageDetected: "malicious_package_detected";
|
|
21
|
+
readonly MaliciousPackageScore: "malicious_package_score";
|
|
22
|
+
readonly MaliciousPackages: "malicious_packages";
|
|
20
23
|
readonly MaxThreatSeverity: "max_threat_severity";
|
|
21
24
|
readonly McpConfigRisk: "mcp_config_risk";
|
|
22
25
|
readonly McpRiskScore: "mcp_risk_score";
|
|
@@ -25,6 +28,13 @@ export declare const AiGatewayContextKey: {
|
|
|
25
28
|
readonly McpTool: "mcp_tool";
|
|
26
29
|
readonly ModelName: "model_name";
|
|
27
30
|
readonly ModelProvider: "model_provider";
|
|
31
|
+
readonly PackageAdvisoryCount: "package_advisory_count";
|
|
32
|
+
readonly PackageCheckStatus: "package_check_status";
|
|
33
|
+
readonly PackageEcosystems: "package_ecosystems";
|
|
34
|
+
readonly PackageInstallDetected: "package_install_detected";
|
|
35
|
+
readonly PackageNames: "package_names";
|
|
36
|
+
readonly PackageRiskScore: "package_risk_score";
|
|
37
|
+
readonly PackagesChecked: "packages_checked";
|
|
28
38
|
readonly PatternType: "pattern_type";
|
|
29
39
|
readonly PiiCount: "pii_count";
|
|
30
40
|
readonly PiiDetected: "pii_detected";
|
|
@@ -76,4 +86,4 @@ export type AiGatewayContextKey = (typeof AiGatewayContextKey)[keyof typeof AiGa
|
|
|
76
86
|
* The full set of authorable context attribute keys for AiGateway.
|
|
77
87
|
* Iterate this to enumerate the authorable surface (cockpit, conformance).
|
|
78
88
|
*/
|
|
79
|
-
export declare const AiGatewayContextKeys: readonly ["content", "crime_score", "detected_threats", "hate_speech_score", "highest_severity", "indirect_injection_score", "injection_score", "invisible_chars_detected", "invisible_chars_score", "jailbreak_score", "loop_count", "loop_detected", "max_threat_severity", "mcp_config_risk", "mcp_risk_score", "mcp_server", "mcp_server_verified", "mcp_tool", "model_name", "model_provider", "pattern_type", "pii_count", "pii_detected", "pii_score", "pii_types", "privilege_scope", "profanity_score", "role", "rpm_exceeded", "rpm_remaining_pct", "rug_pull_detected", "rug_pull_score", "secret_count", "secret_types", "secrets_detected", "sequence_risk", "session_command_injection", "session_cumulative_risk_score", "session_injection_detected", "session_max_command_injection_score", "session_max_injection_score", "session_max_jailbreak_score", "session_max_pii_score", "session_max_secret_score", "session_pii_detected", "session_pii_types", "session_secret_types", "session_secrets_detected", "session_threat_turns", "sexual_score", "suspicious_pattern", "threat_categories", "threat_count", "tool_category", "tool_is_builtin", "tool_is_sensitive", "tool_name", "tool_operation_classes", "tool_poisoning_detected", "tool_poisoning_score", "tool_risk_score", "tpm_exceeded", "tpm_remaining_pct", "violence_score", "weapons_score"];
|
|
89
|
+
export declare const AiGatewayContextKeys: readonly ["content", "crime_score", "detected_threats", "hate_speech_score", "highest_severity", "indirect_injection_score", "injection_score", "invisible_chars_detected", "invisible_chars_score", "jailbreak_score", "loop_count", "loop_detected", "malicious_package_detected", "malicious_package_score", "malicious_packages", "max_threat_severity", "mcp_config_risk", "mcp_risk_score", "mcp_server", "mcp_server_verified", "mcp_tool", "model_name", "model_provider", "package_advisory_count", "package_check_status", "package_ecosystems", "package_install_detected", "package_names", "package_risk_score", "packages_checked", "pattern_type", "pii_count", "pii_detected", "pii_score", "pii_types", "privilege_scope", "profanity_score", "role", "rpm_exceeded", "rpm_remaining_pct", "rug_pull_detected", "rug_pull_score", "secret_count", "secret_types", "secrets_detected", "sequence_risk", "session_command_injection", "session_cumulative_risk_score", "session_injection_detected", "session_max_command_injection_score", "session_max_injection_score", "session_max_jailbreak_score", "session_max_pii_score", "session_max_secret_score", "session_pii_detected", "session_pii_types", "session_secret_types", "session_secrets_detected", "session_threat_turns", "sexual_score", "suspicious_pattern", "threat_categories", "threat_count", "tool_category", "tool_is_builtin", "tool_is_sensitive", "tool_name", "tool_operation_classes", "tool_poisoning_detected", "tool_poisoning_score", "tool_risk_score", "tpm_exceeded", "tpm_remaining_pct", "violence_score", "weapons_score"];
|
|
@@ -19,6 +19,9 @@ export const AiGatewayContextKey = {
|
|
|
19
19
|
JailbreakScore: 'jailbreak_score',
|
|
20
20
|
LoopCount: 'loop_count',
|
|
21
21
|
LoopDetected: 'loop_detected',
|
|
22
|
+
MaliciousPackageDetected: 'malicious_package_detected',
|
|
23
|
+
MaliciousPackageScore: 'malicious_package_score',
|
|
24
|
+
MaliciousPackages: 'malicious_packages',
|
|
22
25
|
MaxThreatSeverity: 'max_threat_severity',
|
|
23
26
|
McpConfigRisk: 'mcp_config_risk',
|
|
24
27
|
McpRiskScore: 'mcp_risk_score',
|
|
@@ -27,6 +30,13 @@ export const AiGatewayContextKey = {
|
|
|
27
30
|
McpTool: 'mcp_tool',
|
|
28
31
|
ModelName: 'model_name',
|
|
29
32
|
ModelProvider: 'model_provider',
|
|
33
|
+
PackageAdvisoryCount: 'package_advisory_count',
|
|
34
|
+
PackageCheckStatus: 'package_check_status',
|
|
35
|
+
PackageEcosystems: 'package_ecosystems',
|
|
36
|
+
PackageInstallDetected: 'package_install_detected',
|
|
37
|
+
PackageNames: 'package_names',
|
|
38
|
+
PackageRiskScore: 'package_risk_score',
|
|
39
|
+
PackagesChecked: 'packages_checked',
|
|
30
40
|
PatternType: 'pattern_type',
|
|
31
41
|
PiiCount: 'pii_count',
|
|
32
42
|
PiiDetected: 'pii_detected',
|
|
@@ -90,6 +100,9 @@ export const AiGatewayContextKeys = [
|
|
|
90
100
|
AiGatewayContextKey.JailbreakScore,
|
|
91
101
|
AiGatewayContextKey.LoopCount,
|
|
92
102
|
AiGatewayContextKey.LoopDetected,
|
|
103
|
+
AiGatewayContextKey.MaliciousPackageDetected,
|
|
104
|
+
AiGatewayContextKey.MaliciousPackageScore,
|
|
105
|
+
AiGatewayContextKey.MaliciousPackages,
|
|
93
106
|
AiGatewayContextKey.MaxThreatSeverity,
|
|
94
107
|
AiGatewayContextKey.McpConfigRisk,
|
|
95
108
|
AiGatewayContextKey.McpRiskScore,
|
|
@@ -98,6 +111,13 @@ export const AiGatewayContextKeys = [
|
|
|
98
111
|
AiGatewayContextKey.McpTool,
|
|
99
112
|
AiGatewayContextKey.ModelName,
|
|
100
113
|
AiGatewayContextKey.ModelProvider,
|
|
114
|
+
AiGatewayContextKey.PackageAdvisoryCount,
|
|
115
|
+
AiGatewayContextKey.PackageCheckStatus,
|
|
116
|
+
AiGatewayContextKey.PackageEcosystems,
|
|
117
|
+
AiGatewayContextKey.PackageInstallDetected,
|
|
118
|
+
AiGatewayContextKey.PackageNames,
|
|
119
|
+
AiGatewayContextKey.PackageRiskScore,
|
|
120
|
+
AiGatewayContextKey.PackagesChecked,
|
|
101
121
|
AiGatewayContextKey.PatternType,
|
|
102
122
|
AiGatewayContextKey.PiiCount,
|
|
103
123
|
AiGatewayContextKey.PiiDetected,
|
|
@@ -427,6 +427,66 @@ when {
|
|
|
427
427
|
context has mcp_server_verified && context.mcp_server_verified == false
|
|
428
428
|
};
|
|
429
429
|
`;
|
|
430
|
+
const AI_GATEWAY_AGENT_SECURITY_MALICIOUS_PACKAGE_CEDAR = `// =============================================================================
|
|
431
|
+
// Malicious Package (Default)
|
|
432
|
+
// =============================================================================
|
|
433
|
+
// Blocks tool calls that install or download packages flagged as malicious
|
|
434
|
+
// by the osv.dev database (OpenSSF MAL- advisories). The malicious_package
|
|
435
|
+
// detector (Shield, Tier Slow) parses package-manager invocations (pip, npm,
|
|
436
|
+
// yarn, pnpm, bun, uv, gem, cargo, go, composer) out of tool-call arguments
|
|
437
|
+
// and checks each referenced package against the OSV batch API.
|
|
438
|
+
//
|
|
439
|
+
// Context keys consumed:
|
|
440
|
+
// - malicious_package_detected: Bool
|
|
441
|
+
// - package_install_detected: Bool
|
|
442
|
+
// - package_check_status: String ("" | "degraded")
|
|
443
|
+
//
|
|
444
|
+
// Compliance:
|
|
445
|
+
// - OWASP LLM03 (Supply Chain), OWASP ASI02
|
|
446
|
+
//
|
|
447
|
+
// Category: agent-security
|
|
448
|
+
// Namespace: AIGateway
|
|
449
|
+
// =============================================================================
|
|
450
|
+
|
|
451
|
+
@id("agent-security.block-malicious-package")
|
|
452
|
+
@name("Block malicious package installs")
|
|
453
|
+
@description("Blocks call_tool when a referenced package carries a known-malicious osv.dev (MAL-) advisory.")
|
|
454
|
+
@severity("critical")
|
|
455
|
+
@tags("category:agent-security,threat:supply-chain,detection:aggregate,surface:call-tool,owasp:llm03,owasp:asi02")
|
|
456
|
+
@reject_message("Package install blocked: the requested package is flagged as malicious in the osv.dev database.")
|
|
457
|
+
forbid (
|
|
458
|
+
principal,
|
|
459
|
+
action == AIGateway::Action::"call_tool",
|
|
460
|
+
resource
|
|
461
|
+
)
|
|
462
|
+
when {
|
|
463
|
+
context has malicious_package_detected &&
|
|
464
|
+
context.malicious_package_detected == true
|
|
465
|
+
};
|
|
466
|
+
|
|
467
|
+
// Alternative (fail-closed): the detector fails OPEN by design — when the
|
|
468
|
+
// OSV lookup is unavailable, installs proceed with package_check_status set
|
|
469
|
+
// to "degraded". Uncomment to block package installs whenever they cannot be
|
|
470
|
+
// verified, trading install availability for supply-chain certainty.
|
|
471
|
+
//
|
|
472
|
+
// @id("agent-security.block-unverified-package")
|
|
473
|
+
// @name("Block unverified package installs")
|
|
474
|
+
// @description("Blocks call_tool package installs when the malicious-package lookup is degraded.")
|
|
475
|
+
// @severity("medium")
|
|
476
|
+
// @tags("category:agent-security,threat:supply-chain,detection:aggregate,surface:call-tool,owasp:llm03")
|
|
477
|
+
// @reject_message("Package install blocked: the package could not be verified against the malicious-package database.")
|
|
478
|
+
// forbid (
|
|
479
|
+
// principal,
|
|
480
|
+
// action == AIGateway::Action::"call_tool",
|
|
481
|
+
// resource
|
|
482
|
+
// )
|
|
483
|
+
// when {
|
|
484
|
+
// context has package_install_detected &&
|
|
485
|
+
// context.package_install_detected == true &&
|
|
486
|
+
// context has package_check_status &&
|
|
487
|
+
// context.package_check_status == "degraded"
|
|
488
|
+
// };
|
|
489
|
+
`;
|
|
430
490
|
const AI_GATEWAY_TOOLS_MCP_SERVER_ALLOWLIST_CEDAR = `// =============================================================================
|
|
431
491
|
// MCP Server Allowlist
|
|
432
492
|
// =============================================================================
|
|
@@ -1366,6 +1426,15 @@ export const AI_GATEWAY_TEMPLATES = [
|
|
|
1366
1426
|
severity: 'critical',
|
|
1367
1427
|
tags: ['category:agent-security', 'threat:tool-poisoning', 'threat:rug-pull', 'threat:indirect-injection', 'threat:supply-chain', 'owasp:asi01', 'owasp:asi04'],
|
|
1368
1428
|
},
|
|
1429
|
+
{
|
|
1430
|
+
id: 'agent-security.malicious-package',
|
|
1431
|
+
name: 'Malicious Package',
|
|
1432
|
+
description: 'Block package installs (pip, npm, yarn, pnpm, bun, uv, gem, cargo, go, composer) flagged as malicious.',
|
|
1433
|
+
category: 'agent-security',
|
|
1434
|
+
cedarText: AI_GATEWAY_AGENT_SECURITY_MALICIOUS_PACKAGE_CEDAR,
|
|
1435
|
+
severity: 'critical',
|
|
1436
|
+
tags: ['category:agent-security', 'threat:supply-chain', 'owasp:llm03', 'owasp:asi02'],
|
|
1437
|
+
},
|
|
1369
1438
|
{
|
|
1370
1439
|
id: 'tools.mcp-server-allowlist',
|
|
1371
1440
|
name: 'MCP Server Allowlist',
|
|
@@ -1530,6 +1599,20 @@ export const AI_GATEWAY_TEMPLATES_JSON = `{
|
|
|
1530
1599
|
"owasp:asi04"
|
|
1531
1600
|
]
|
|
1532
1601
|
},
|
|
1602
|
+
{
|
|
1603
|
+
"id": "agent-security.malicious-package",
|
|
1604
|
+
"name": "Malicious Package",
|
|
1605
|
+
"description": "Block package installs (pip, npm, yarn, pnpm, bun, uv, gem, cargo, go, composer) flagged as malicious.",
|
|
1606
|
+
"category": "agent-security",
|
|
1607
|
+
"file": "defaults/malicious_package.cedar",
|
|
1608
|
+
"severity": "critical",
|
|
1609
|
+
"tags": [
|
|
1610
|
+
"category:agent-security",
|
|
1611
|
+
"threat:supply-chain",
|
|
1612
|
+
"owasp:llm03",
|
|
1613
|
+
"owasp:asi02"
|
|
1614
|
+
]
|
|
1615
|
+
},
|
|
1533
1616
|
{
|
|
1534
1617
|
"id": "tools.mcp-server-allowlist",
|
|
1535
1618
|
"name": "MCP Server Allowlist",
|
|
@@ -168,6 +168,20 @@ export const AI_GATEWAY_DETECTORS = [
|
|
|
168
168
|
defendsAgainst: ["mcp_rug_pull"],
|
|
169
169
|
exampleAttacks: [],
|
|
170
170
|
},
|
|
171
|
+
{
|
|
172
|
+
id: "malicious_package",
|
|
173
|
+
displayName: "Malicious Package (OSV)",
|
|
174
|
+
category: "tool_safety",
|
|
175
|
+
stability: "preview",
|
|
176
|
+
tier: "slow",
|
|
177
|
+
inhouse: false,
|
|
178
|
+
model: null,
|
|
179
|
+
latencyP50Ms: 250,
|
|
180
|
+
emits: [{ name: "package_install_detected", type: "Bool", modifiable: false, semantic: "boolean_flag", description: "True iff a package install/download command was recognized in the event." }, { name: "packages_checked", type: "Long", modifiable: false, semantic: "count", description: "Number of unique packages checked against osv.dev." }, { name: "malicious_package_detected", type: "Bool", modifiable: false, semantic: "boolean_flag", description: "True iff any referenced package has a known-malicious (MAL-) OSV advisory." }, { name: "malicious_package_score", type: "Long", modifiable: false, semantic: "severity_0_100", description: "100 when a malicious package was detected, 0 otherwise." }, { name: "malicious_packages", type: "Set<String>", modifiable: false, semantic: "category_set", description: "Malicious packages as ecosystem/name[@version] strings." }, { name: "package_names", type: "Set<String>", modifiable: false, semantic: "category_set", description: "Names of all packages parsed from install commands (without ecosystem prefix), e.g. 'requests', 'left-pad'. Available even when the osv.dev lookup fails." }, { name: "package_ecosystems", type: "Set<String>", modifiable: false, semantic: "category_set", description: "Unique package ecosystems seen in this event, e.g. 'PyPI', 'npm'. Useful for policies that restrict which ecosystems are permitted." }, { name: "package_advisory_count", type: "Long", modifiable: false, semantic: "count", description: "Total non-malicious OSV advisories (GHSA- / CVE- IDs) found across all checked packages. Excludes MAL- entries counted in malicious_package_detected." }, { name: "package_risk_score", type: "Long", modifiable: false, semantic: "severity_0_100", description: "Graduated supply-chain risk score (0-100). 100 when any malicious package is found; proportional to advisory_count for advisory-only packages; 0 when all packages are clean." }, { name: "package_check_status", type: "String", modifiable: false, semantic: "category_label", description: "Set to 'degraded' when the osv.dev lookup failed (fail-open); empty otherwise." }],
|
|
181
|
+
supportedModes: ["enforce", "monitor", "alert"],
|
|
182
|
+
defendsAgainst: ["supply_chain"],
|
|
183
|
+
exampleAttacks: [{ title: "Typosquatted PyPI install via MCP bash tool", vulnerabilityId: "supply_chain", snippet: "pip install reqeusts", expectedSignal: {} }],
|
|
184
|
+
},
|
|
171
185
|
];
|
|
172
186
|
// Semantic field → contributing detector ids (producesAttrs + normalizationAliases,
|
|
173
187
|
// resolved at codegen). Used by the client field→detector resolver — no Shield round-trip.
|
|
@@ -181,11 +195,21 @@ export const AI_GATEWAY_FIELD_TO_DETECTORS = {
|
|
|
181
195
|
"jailbreak_score": ["injection"],
|
|
182
196
|
"loop_count": ["loop_detector"],
|
|
183
197
|
"loop_detected": ["loop_detector"],
|
|
198
|
+
"malicious_package_detected": ["malicious_package"],
|
|
199
|
+
"malicious_package_score": ["malicious_package"],
|
|
200
|
+
"malicious_packages": ["malicious_package"],
|
|
184
201
|
"mcp_config_risk": ["mcp_risk"],
|
|
185
202
|
"mcp_risk_score": ["mcp_risk"],
|
|
186
203
|
"mcp_server": ["mcp_risk"],
|
|
187
204
|
"mcp_server_verified": ["mcp_risk"],
|
|
188
205
|
"mcp_tool": ["mcp_risk"],
|
|
206
|
+
"package_advisory_count": ["malicious_package"],
|
|
207
|
+
"package_check_status": ["malicious_package"],
|
|
208
|
+
"package_ecosystems": ["malicious_package"],
|
|
209
|
+
"package_install_detected": ["malicious_package"],
|
|
210
|
+
"package_names": ["malicious_package"],
|
|
211
|
+
"package_risk_score": ["malicious_package"],
|
|
212
|
+
"packages_checked": ["malicious_package"],
|
|
189
213
|
"pattern_type": ["action_pattern"],
|
|
190
214
|
"pii_count": ["pii"],
|
|
191
215
|
"pii_detected": ["pii"],
|
|
@@ -71,8 +71,12 @@ export declare const GuardrailsContextKey: {
|
|
|
71
71
|
readonly McpServerVerified: "mcp_server_verified";
|
|
72
72
|
readonly McpTool: "mcp_tool";
|
|
73
73
|
readonly MultiTurnDetection: "multi_turn_detection";
|
|
74
|
+
readonly PackageAdvisoryCount: "package_advisory_count";
|
|
74
75
|
readonly PackageCheckStatus: "package_check_status";
|
|
76
|
+
readonly PackageEcosystems: "package_ecosystems";
|
|
75
77
|
readonly PackageInstallDetected: "package_install_detected";
|
|
78
|
+
readonly PackageNames: "package_names";
|
|
79
|
+
readonly PackageRiskScore: "package_risk_score";
|
|
76
80
|
readonly PackagesChecked: "packages_checked";
|
|
77
81
|
readonly ParamTypeViolation: "param_type_violation";
|
|
78
82
|
readonly ParamTypeViolations: "param_type_violations";
|
|
@@ -143,4 +147,4 @@ export type GuardrailsContextKey = (typeof GuardrailsContextKey)[keyof typeof Gu
|
|
|
143
147
|
* The full set of authorable context attribute keys for Guardrails.
|
|
144
148
|
* Iterate this to enumerate the authorable surface (cockpit, conformance).
|
|
145
149
|
*/
|
|
146
|
-
export declare const GuardrailsContextKeys: readonly ["agent_framework", "agent_id", "agent_publisher", "agent_trust_level", "agent_type", "budget_exceeded", "budget_remaining_pct", "code_languages", "code_ratio", "command_injection_detected", "command_injection_score", "command_injection_type", "contains_code", "contains_non_ascii", "content_safety_blocked", "content_safety_score", "content_topics", "content_type", "conversation_turn", "crime_score", "cross_origin_detected", "cross_origin_score", "cross_origin_type", "detected_language", "detected_script", "detector_count", "direction", "encoded_content_detected", "encoded_count", "encoded_score", "encoded_types", "factuality_score", "hallucination_score", "hate_speech_score", "highest_severity", "identity_type", "indirect_injection_score", "indirect_injection_type", "injection_deep_context_score", "injection_pulse_score", "injection_score", "injection_type", "invisible_chars_detected", "invisible_chars_score", "is_english", "is_latin_script", "jailbreak_deep_context_score", "jailbreak_pulse_score", "jailbreak_score", "keyword_categories", "keyword_count", "keyword_matched", "language_confidence", "loop_count", "loop_detected", "loop_tool", "malicious_package_detected", "malicious_package_score", "malicious_packages", "mcp_config_risk", "mcp_risk_score", "mcp_risk_type", "mcp_server", "mcp_server_verified", "mcp_tool", "multi_turn_detection", "package_check_status", "package_install_detected", "packages_checked", "param_type_violation", "param_type_violations", "path", "path_traversal_detected", "path_traversal_severity", "path_traversal_type", "pattern_type", "phishing_detected", "pii_count", "pii_detected", "pii_score", "pii_types", "principal", "privilege_scope", "profanity_score", "request_id", "role", "rpm_exceeded", "rpm_remaining_pct", "rug_pull_detected", "rug_pull_score", "rug_pull_type", "script_confidence", "secret_count", "secret_types", "secrets_detected", "sentiment_score", "sequence_risk", "session_command_injection", "session_cumulative_risk_score", "session_injection_detected", "session_max_command_injection_score", "session_max_injection_score", "session_max_jailbreak_score", "session_max_pii_score", "session_max_secret_score", "session_max_sensitivity", "session_original_request", "session_pii_detected", "session_pii_types", "session_secret_types", "session_secrets_detected", "session_threat_turns", "sexual_score", "sql_injection_detected", "sql_injection_score", "sql_injection_type", "suspicious_pattern", "timestamp", "tool_category", "tool_is_builtin", "tool_is_sensitive", "tool_name", "tool_operation_classes", "tool_poisoning_detected", "tool_poisoning_score", "tool_poisoning_type", "tool_risk_score", "topic_confidence", "tpm_exceeded", "tpm_remaining_pct", "violence_score", "weapons_score"];
|
|
150
|
+
export declare const GuardrailsContextKeys: readonly ["agent_framework", "agent_id", "agent_publisher", "agent_trust_level", "agent_type", "budget_exceeded", "budget_remaining_pct", "code_languages", "code_ratio", "command_injection_detected", "command_injection_score", "command_injection_type", "contains_code", "contains_non_ascii", "content_safety_blocked", "content_safety_score", "content_topics", "content_type", "conversation_turn", "crime_score", "cross_origin_detected", "cross_origin_score", "cross_origin_type", "detected_language", "detected_script", "detector_count", "direction", "encoded_content_detected", "encoded_count", "encoded_score", "encoded_types", "factuality_score", "hallucination_score", "hate_speech_score", "highest_severity", "identity_type", "indirect_injection_score", "indirect_injection_type", "injection_deep_context_score", "injection_pulse_score", "injection_score", "injection_type", "invisible_chars_detected", "invisible_chars_score", "is_english", "is_latin_script", "jailbreak_deep_context_score", "jailbreak_pulse_score", "jailbreak_score", "keyword_categories", "keyword_count", "keyword_matched", "language_confidence", "loop_count", "loop_detected", "loop_tool", "malicious_package_detected", "malicious_package_score", "malicious_packages", "mcp_config_risk", "mcp_risk_score", "mcp_risk_type", "mcp_server", "mcp_server_verified", "mcp_tool", "multi_turn_detection", "package_advisory_count", "package_check_status", "package_ecosystems", "package_install_detected", "package_names", "package_risk_score", "packages_checked", "param_type_violation", "param_type_violations", "path", "path_traversal_detected", "path_traversal_severity", "path_traversal_type", "pattern_type", "phishing_detected", "pii_count", "pii_detected", "pii_score", "pii_types", "principal", "privilege_scope", "profanity_score", "request_id", "role", "rpm_exceeded", "rpm_remaining_pct", "rug_pull_detected", "rug_pull_score", "rug_pull_type", "script_confidence", "secret_count", "secret_types", "secrets_detected", "sentiment_score", "sequence_risk", "session_command_injection", "session_cumulative_risk_score", "session_injection_detected", "session_max_command_injection_score", "session_max_injection_score", "session_max_jailbreak_score", "session_max_pii_score", "session_max_secret_score", "session_max_sensitivity", "session_original_request", "session_pii_detected", "session_pii_types", "session_secret_types", "session_secrets_detected", "session_threat_turns", "sexual_score", "sql_injection_detected", "sql_injection_score", "sql_injection_type", "suspicious_pattern", "timestamp", "tool_category", "tool_is_builtin", "tool_is_sensitive", "tool_name", "tool_operation_classes", "tool_poisoning_detected", "tool_poisoning_score", "tool_poisoning_type", "tool_risk_score", "topic_confidence", "tpm_exceeded", "tpm_remaining_pct", "violence_score", "weapons_score"];
|
|
@@ -73,8 +73,12 @@ export const GuardrailsContextKey = {
|
|
|
73
73
|
McpServerVerified: 'mcp_server_verified',
|
|
74
74
|
McpTool: 'mcp_tool',
|
|
75
75
|
MultiTurnDetection: 'multi_turn_detection',
|
|
76
|
+
PackageAdvisoryCount: 'package_advisory_count',
|
|
76
77
|
PackageCheckStatus: 'package_check_status',
|
|
78
|
+
PackageEcosystems: 'package_ecosystems',
|
|
77
79
|
PackageInstallDetected: 'package_install_detected',
|
|
80
|
+
PackageNames: 'package_names',
|
|
81
|
+
PackageRiskScore: 'package_risk_score',
|
|
78
82
|
PackagesChecked: 'packages_checked',
|
|
79
83
|
ParamTypeViolation: 'param_type_violation',
|
|
80
84
|
ParamTypeViolations: 'param_type_violations',
|
|
@@ -211,8 +215,12 @@ export const GuardrailsContextKeys = [
|
|
|
211
215
|
GuardrailsContextKey.McpServerVerified,
|
|
212
216
|
GuardrailsContextKey.McpTool,
|
|
213
217
|
GuardrailsContextKey.MultiTurnDetection,
|
|
218
|
+
GuardrailsContextKey.PackageAdvisoryCount,
|
|
214
219
|
GuardrailsContextKey.PackageCheckStatus,
|
|
220
|
+
GuardrailsContextKey.PackageEcosystems,
|
|
215
221
|
GuardrailsContextKey.PackageInstallDetected,
|
|
222
|
+
GuardrailsContextKey.PackageNames,
|
|
223
|
+
GuardrailsContextKey.PackageRiskScore,
|
|
216
224
|
GuardrailsContextKey.PackagesChecked,
|
|
217
225
|
GuardrailsContextKey.ParamTypeViolation,
|
|
218
226
|
GuardrailsContextKey.ParamTypeViolations,
|