@highflame/policy 2.2.35 → 2.2.37
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/agent_ops/context.json +822 -0
- package/_schemas/agent_ops/schema.cedarschema +134 -109
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_a2a_cross_origin.cedar +6 -4
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_a2a_escalation.cedar +5 -4
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_a2a_inter_agent_injection.cedar +9 -8
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_claude_block_injection.cedar +2 -2
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_defaults.cedar +3 -3
- package/_schemas/agent_ops/templates/ported/agent-security/agent_identity_multi_agent_trust.cedar +6 -6
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_chat_assistant.cedar +5 -4
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_defaults.cedar +18 -12
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_semantic.cedar +6 -6
- package/_schemas/agent_ops/templates/ported/content-safety/trust_safety_toxicity.cedar +4 -4
- package/_schemas/agent_ops/templates/ported/data-protection/data_protection_advanced_secrets.cedar +4 -2
- package/_schemas/agent_ops/templates/ported/data-protection/data_protection_data_pipeline.cedar +2 -1
- package/_schemas/agent_ops/templates/ported/data-protection/data_protection_defaults.cedar +4 -2
- package/_schemas/agent_ops/templates/ported/data-protection/privacy_advanced_pii.cedar +42 -21
- package/_schemas/agent_ops/templates/ported/data-protection/privacy_defaults.cedar +14 -7
- package/_schemas/agent_ops/templates/ported/data-protection/privacy_pii_model.cedar +10 -5
- package/_schemas/agent_ops/templates/ported/organization/organization_team_permissions.cedar +3 -2
- package/_schemas/agent_ops/templates/ported/threat-detection/security_advanced_block_critical_severity.cedar +3 -3
- package/_schemas/agent_ops/templates/ported/threat-detection/security_chat_assistant.cedar +5 -4
- package/_schemas/agent_ops/templates/ported/threat-detection/security_data_pipeline_block_injection.cedar +3 -2
- package/_schemas/agent_ops/templates/ported/threat-detection/security_injection.cedar +9 -8
- package/_schemas/agent_ops/templates/ported/threat-detection/security_patterns.cedar +5 -3
- package/_schemas/agent_ops/templates/ported/threat-detection/semantic_defaults.cedar +9 -7
- package/_schemas/ai_gateway/context.json +308 -0
- package/_schemas/ai_gateway/schema.cedarschema +44 -7
- package/_schemas/ai_gateway/templates/defaults/agent_security.cedar +5 -16
- package/_schemas/ai_gateway/templates/defaults/pii.cedar +14 -7
- package/_schemas/ai_gateway/templates/defaults/pii_advanced.cedar +42 -21
- package/_schemas/ai_gateway/templates/defaults/pii_model.cedar +10 -5
- package/_schemas/ai_gateway/templates/defaults/semantic.cedar +9 -74
- package/_schemas/ai_gateway/templates/defaults/tools.cedar +7 -38
- package/_schemas/ai_gateway/templates/secrets.cedar +3 -3
- package/_schemas/guardrails/context.json +701 -0
- package/_schemas/guardrails/schema.cedarschema +30 -2
- package/_schemas/guardrails/templates/defaults/agent_identity.cedar +3 -3
- package/_schemas/guardrails/templates/defaults/injection.cedar +9 -8
- package/_schemas/guardrails/templates/defaults/pii.cedar +14 -7
- package/_schemas/guardrails/templates/defaults/pii_model.cedar +10 -5
- package/_schemas/guardrails/templates/defaults/secrets.cedar +4 -2
- package/_schemas/guardrails/templates/defaults/security_patterns.cedar +5 -3
- package/_schemas/guardrails/templates/defaults/semantic.cedar +6 -6
- package/_schemas/guardrails/templates/defaults/toxicity.cedar +6 -6
- package/_schemas/guardrails/templates/profiles/a2a_security/cross_origin.cedar +6 -4
- package/_schemas/guardrails/templates/profiles/a2a_security/escalation_detection.cedar +5 -4
- package/_schemas/guardrails/templates/profiles/a2a_security/inter_agent_injection.cedar +9 -8
- package/_schemas/guardrails/templates/profiles/advanced_detection/pii.cedar +42 -21
- package/_schemas/guardrails/templates/profiles/advanced_detection/secrets.cedar +4 -2
- package/_schemas/guardrails/templates/profiles/chat_assistant/security.cedar +5 -4
- package/_schemas/guardrails/templates/profiles/chat_assistant/trust_safety.cedar +5 -4
- package/_schemas/guardrails/templates/profiles/data_pipeline/data_protection.cedar +2 -1
- package/_schemas/guardrails/templates/profiles/data_pipeline/security.cedar +3 -2
- package/_schemas/guardrails/templates/profiles/multi_agent/agent_trust.cedar +6 -6
- package/_schemas/guardrails/templates/templates.json +0 -9
- package/_schemas/overwatch/context.json +30 -0
- package/_schemas/overwatch/schema.cedarschema +7 -0
- package/dist/agent_ops-context.gen.d.ts +6 -1
- package/dist/agent_ops-context.gen.js +10 -0
- package/dist/agent_ops-defaults.gen.js +177 -120
- package/dist/agent_ops-entities.gen.js +5 -1
- package/dist/ai_gateway-context.gen.d.ts +6 -1
- package/dist/ai_gateway-context.gen.js +10 -0
- package/dist/ai_gateway-defaults.gen.js +90 -164
- package/dist/ai_gateway-detectors.gen.js +6 -1
- package/dist/ai_gateway-entities.gen.js +6 -2
- package/dist/guardrails-context.gen.d.ts +6 -1
- package/dist/guardrails-context.gen.js +10 -0
- package/dist/guardrails-defaults.gen.js +144 -145
- package/dist/guardrails-detectors.gen.js +6 -1
- package/dist/guardrails-entities.gen.js +5 -1
- package/dist/overwatch-context.gen.d.ts +6 -1
- package/dist/overwatch-context.gen.js +10 -0
- package/dist/overwatch-detectors.gen.js +6 -1
- package/dist/service-schemas.gen.d.ts +4 -4
- package/dist/service-schemas.gen.js +528 -118
- package/package.json +1 -1
- package/_schemas/guardrails/templates/profiles/advanced_detection/threat_severity.cedar +0 -30
|
@@ -22,7 +22,8 @@
|
|
|
22
22
|
@reject_message("Content blocked: national identifier (SSN, passport, or driver's license) patterns detected.")
|
|
23
23
|
forbid (
|
|
24
24
|
principal,
|
|
25
|
-
action in [Guardrails::Action::"process_prompt",
|
|
25
|
+
action in [Guardrails::Action::"process_prompt",
|
|
26
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
26
27
|
resource
|
|
27
28
|
)
|
|
28
29
|
when {
|
|
@@ -44,7 +45,8 @@ when {
|
|
|
44
45
|
@reject_message("Content blocked: credit card number patterns detected.")
|
|
45
46
|
forbid (
|
|
46
47
|
principal,
|
|
47
|
-
action in [Guardrails::Action::"process_prompt",
|
|
48
|
+
action in [Guardrails::Action::"process_prompt",
|
|
49
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
48
50
|
resource
|
|
49
51
|
)
|
|
50
52
|
when {
|
|
@@ -63,7 +65,8 @@ when {
|
|
|
63
65
|
@reject_message("Content blocked: bank account (IBAN) number patterns detected.")
|
|
64
66
|
forbid (
|
|
65
67
|
principal,
|
|
66
|
-
action in [Guardrails::Action::"process_prompt",
|
|
68
|
+
action in [Guardrails::Action::"process_prompt",
|
|
69
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
67
70
|
resource
|
|
68
71
|
)
|
|
69
72
|
when {
|
|
@@ -85,7 +88,8 @@ when {
|
|
|
85
88
|
@reject_message("Content blocked: medical record identifier patterns detected.")
|
|
86
89
|
forbid (
|
|
87
90
|
principal,
|
|
88
|
-
action in [Guardrails::Action::"process_prompt",
|
|
91
|
+
action in [Guardrails::Action::"process_prompt",
|
|
92
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
89
93
|
resource
|
|
90
94
|
)
|
|
91
95
|
when {
|
|
@@ -109,7 +113,8 @@ when {
|
|
|
109
113
|
@reject_message("Content blocked: tax identifier (ITIN or EIN) patterns detected.")
|
|
110
114
|
forbid (
|
|
111
115
|
principal,
|
|
112
|
-
action in [Guardrails::Action::"process_prompt",
|
|
116
|
+
action in [Guardrails::Action::"process_prompt",
|
|
117
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
113
118
|
resource
|
|
114
119
|
)
|
|
115
120
|
when {
|
|
@@ -129,7 +134,8 @@ when {
|
|
|
129
134
|
@reject_message("Content blocked: credential or API key patterns detected.")
|
|
130
135
|
forbid (
|
|
131
136
|
principal,
|
|
132
|
-
action in [Guardrails::Action::"process_prompt",
|
|
137
|
+
action in [Guardrails::Action::"process_prompt",
|
|
138
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
133
139
|
resource
|
|
134
140
|
)
|
|
135
141
|
when {
|
|
@@ -160,7 +166,8 @@ when {
|
|
|
160
166
|
@reject_message("Content blocked: cryptocurrency wallet address patterns detected.")
|
|
161
167
|
forbid (
|
|
162
168
|
principal,
|
|
163
|
-
action in [Guardrails::Action::"process_prompt",
|
|
169
|
+
action in [Guardrails::Action::"process_prompt",
|
|
170
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
164
171
|
resource
|
|
165
172
|
)
|
|
166
173
|
when {
|
|
@@ -179,7 +186,8 @@ when {
|
|
|
179
186
|
@reject_message("Content blocked: personal name patterns detected.")
|
|
180
187
|
forbid (
|
|
181
188
|
principal,
|
|
182
|
-
action in [Guardrails::Action::"process_prompt",
|
|
189
|
+
action in [Guardrails::Action::"process_prompt",
|
|
190
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
183
191
|
resource
|
|
184
192
|
)
|
|
185
193
|
when {
|
|
@@ -198,7 +206,8 @@ when {
|
|
|
198
206
|
@reject_message("Content blocked: email address patterns detected.")
|
|
199
207
|
forbid (
|
|
200
208
|
principal,
|
|
201
|
-
action in [Guardrails::Action::"process_prompt",
|
|
209
|
+
action in [Guardrails::Action::"process_prompt",
|
|
210
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
202
211
|
resource
|
|
203
212
|
)
|
|
204
213
|
when {
|
|
@@ -217,7 +226,8 @@ when {
|
|
|
217
226
|
@reject_message("Content blocked: phone number patterns detected.")
|
|
218
227
|
forbid (
|
|
219
228
|
principal,
|
|
220
|
-
action in [Guardrails::Action::"process_prompt",
|
|
229
|
+
action in [Guardrails::Action::"process_prompt",
|
|
230
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
221
231
|
resource
|
|
222
232
|
)
|
|
223
233
|
when {
|
|
@@ -236,7 +246,8 @@ when {
|
|
|
236
246
|
@reject_message("Content blocked: date or time patterns detected.")
|
|
237
247
|
forbid (
|
|
238
248
|
principal,
|
|
239
|
-
action in [Guardrails::Action::"process_prompt",
|
|
249
|
+
action in [Guardrails::Action::"process_prompt",
|
|
250
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
240
251
|
resource
|
|
241
252
|
)
|
|
242
253
|
when {
|
|
@@ -258,7 +269,8 @@ when {
|
|
|
258
269
|
@reject_message("Content blocked: URL patterns detected.")
|
|
259
270
|
forbid (
|
|
260
271
|
principal,
|
|
261
|
-
action in [Guardrails::Action::"process_prompt",
|
|
272
|
+
action in [Guardrails::Action::"process_prompt",
|
|
273
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
262
274
|
resource
|
|
263
275
|
)
|
|
264
276
|
when {
|
|
@@ -277,7 +289,8 @@ when {
|
|
|
277
289
|
@reject_message("Content blocked: street address or location patterns detected.")
|
|
278
290
|
forbid (
|
|
279
291
|
principal,
|
|
280
|
-
action in [Guardrails::Action::"process_prompt",
|
|
292
|
+
action in [Guardrails::Action::"process_prompt",
|
|
293
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
281
294
|
resource
|
|
282
295
|
)
|
|
283
296
|
when {
|
|
@@ -298,7 +311,8 @@ when {
|
|
|
298
311
|
@reject_message("Content blocked: organization name patterns detected.")
|
|
299
312
|
forbid (
|
|
300
313
|
principal,
|
|
301
|
-
action in [Guardrails::Action::"process_prompt",
|
|
314
|
+
action in [Guardrails::Action::"process_prompt",
|
|
315
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
302
316
|
resource
|
|
303
317
|
)
|
|
304
318
|
when {
|
|
@@ -317,7 +331,8 @@ when {
|
|
|
317
331
|
@reject_message("Content blocked: occupation patterns detected.")
|
|
318
332
|
forbid (
|
|
319
333
|
principal,
|
|
320
|
-
action in [Guardrails::Action::"process_prompt",
|
|
334
|
+
action in [Guardrails::Action::"process_prompt",
|
|
335
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
321
336
|
resource
|
|
322
337
|
)
|
|
323
338
|
when {
|
|
@@ -336,7 +351,8 @@ when {
|
|
|
336
351
|
@reject_message("Content blocked: username patterns detected.")
|
|
337
352
|
forbid (
|
|
338
353
|
principal,
|
|
339
|
-
action in [Guardrails::Action::"process_prompt",
|
|
354
|
+
action in [Guardrails::Action::"process_prompt",
|
|
355
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
340
356
|
resource
|
|
341
357
|
)
|
|
342
358
|
when {
|
|
@@ -355,7 +371,8 @@ when {
|
|
|
355
371
|
@reject_message("Content blocked: employee or customer identifier patterns detected.")
|
|
356
372
|
forbid (
|
|
357
373
|
principal,
|
|
358
|
-
action in [Guardrails::Action::"process_prompt",
|
|
374
|
+
action in [Guardrails::Action::"process_prompt",
|
|
375
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
359
376
|
resource
|
|
360
377
|
)
|
|
361
378
|
when {
|
|
@@ -376,7 +393,8 @@ when {
|
|
|
376
393
|
@reject_message("Content blocked: device or network identifier patterns detected.")
|
|
377
394
|
forbid (
|
|
378
395
|
principal,
|
|
379
|
-
action in [Guardrails::Action::"process_prompt",
|
|
396
|
+
action in [Guardrails::Action::"process_prompt",
|
|
397
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
380
398
|
resource
|
|
381
399
|
)
|
|
382
400
|
when {
|
|
@@ -403,7 +421,8 @@ when {
|
|
|
403
421
|
@reject_message("Content blocked: vehicle identifier (VIN or plate) patterns detected.")
|
|
404
422
|
forbid (
|
|
405
423
|
principal,
|
|
406
|
-
action in [Guardrails::Action::"process_prompt",
|
|
424
|
+
action in [Guardrails::Action::"process_prompt",
|
|
425
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
407
426
|
resource
|
|
408
427
|
)
|
|
409
428
|
when {
|
|
@@ -423,7 +442,8 @@ when {
|
|
|
423
442
|
@reject_message("Content blocked: salary or financial amount patterns detected.")
|
|
424
443
|
forbid (
|
|
425
444
|
principal,
|
|
426
|
-
action in [Guardrails::Action::"process_prompt",
|
|
445
|
+
action in [Guardrails::Action::"process_prompt",
|
|
446
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
427
447
|
resource
|
|
428
448
|
)
|
|
429
449
|
when {
|
|
@@ -444,7 +464,8 @@ when {
|
|
|
444
464
|
@reject_message("Content blocked: sensitive attribute (ethnicity, religion, etc.) patterns detected.")
|
|
445
465
|
forbid (
|
|
446
466
|
principal,
|
|
447
|
-
action in [Guardrails::Action::"process_prompt",
|
|
467
|
+
action in [Guardrails::Action::"process_prompt",
|
|
468
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool", Guardrails::Action::"read_file", Guardrails::Action::"write_file"],
|
|
448
469
|
resource
|
|
449
470
|
)
|
|
450
471
|
when {
|
|
@@ -18,7 +18,7 @@
|
|
|
18
18
|
|
|
19
19
|
@id("data-protection.advanced-block-high-risk-secrets")
|
|
20
20
|
@name("Block high-risk credential types")
|
|
21
|
-
@description("Blocks process_prompt, call_tool, read_file, and write_file when secret_types contains a cloud, GitHub, SSH, or database credential.")
|
|
21
|
+
@description("Blocks process_prompt, process_response, call_tool, read_file, and write_file when secret_types contains a cloud, GitHub, SSH, or database credential.")
|
|
22
22
|
@severity("critical")
|
|
23
23
|
@tags("category:data-protection,threat:secrets,detection:rule,owasp:llm06")
|
|
24
24
|
@reject_message("Content blocked: high-risk credentials detected (cloud keys, GitHub tokens, SSH keys, or database URLs).")
|
|
@@ -26,6 +26,7 @@ forbid (
|
|
|
26
26
|
principal,
|
|
27
27
|
action in [
|
|
28
28
|
Guardrails::Action::"process_prompt",
|
|
29
|
+
Guardrails::Action::"process_response",
|
|
29
30
|
Guardrails::Action::"call_tool",
|
|
30
31
|
Guardrails::Action::"read_file",
|
|
31
32
|
Guardrails::Action::"write_file"
|
|
@@ -48,7 +49,7 @@ when {
|
|
|
48
49
|
|
|
49
50
|
@id("data-protection.advanced-block-api-tokens")
|
|
50
51
|
@name("Block API keys and bearer tokens")
|
|
51
|
-
@description("Blocks process_prompt, call_tool, read_file, and write_file when secret_types contains api_key, bearer_token, jwt_token, or OAuth credentials.")
|
|
52
|
+
@description("Blocks process_prompt, process_response, call_tool, read_file, and write_file when secret_types contains api_key, bearer_token, jwt_token, or OAuth credentials.")
|
|
52
53
|
@severity("high")
|
|
53
54
|
@tags("category:data-protection,threat:secrets,detection:rule,owasp:llm06")
|
|
54
55
|
@reject_message("Content blocked: API keys, bearer tokens, or OAuth credentials detected.")
|
|
@@ -56,6 +57,7 @@ forbid (
|
|
|
56
57
|
principal,
|
|
57
58
|
action in [
|
|
58
59
|
Guardrails::Action::"process_prompt",
|
|
60
|
+
Guardrails::Action::"process_response",
|
|
59
61
|
Guardrails::Action::"call_tool",
|
|
60
62
|
Guardrails::Action::"read_file",
|
|
61
63
|
Guardrails::Action::"write_file"
|
|
@@ -18,13 +18,14 @@
|
|
|
18
18
|
|
|
19
19
|
@id("security.chat-block-injection")
|
|
20
20
|
@name("Block injection (chat profile)")
|
|
21
|
-
@description("Blocks process_prompt and call_tool when injection_score >= 71 (lower threshold for public chat).")
|
|
21
|
+
@description("Blocks process_prompt, process_response, and call_tool when injection_score >= 71 (lower threshold for public chat).")
|
|
22
22
|
@severity("high")
|
|
23
23
|
@tags("category:security,threat:injection,detection:ml,owasp:llm01")
|
|
24
24
|
@reject_message("Prompt blocked: prompt injection detected with high confidence (chat profile).")
|
|
25
25
|
forbid (
|
|
26
26
|
principal,
|
|
27
|
-
action in [Guardrails::Action::"process_prompt",
|
|
27
|
+
action in [Guardrails::Action::"process_prompt",
|
|
28
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool"],
|
|
28
29
|
resource
|
|
29
30
|
)
|
|
30
31
|
when {
|
|
@@ -33,13 +34,13 @@ when {
|
|
|
33
34
|
|
|
34
35
|
@id("security.chat-block-jailbreak")
|
|
35
36
|
@name("Block jailbreak (chat profile)")
|
|
36
|
-
@description("Blocks process_prompt when jailbreak_score >= 66 (lower threshold for public chat).")
|
|
37
|
+
@description("Blocks process_prompt and process_response when jailbreak_score >= 66 (lower threshold for public chat).")
|
|
37
38
|
@severity("high")
|
|
38
39
|
@tags("category:security,threat:jailbreak,detection:ml,owasp:llm02")
|
|
39
40
|
@reject_message("Prompt blocked: jailbreak attempt detected with high confidence (chat profile).")
|
|
40
41
|
forbid (
|
|
41
42
|
principal,
|
|
42
|
-
action
|
|
43
|
+
action in [Guardrails::Action::"process_prompt", Guardrails::Action::"process_response"],
|
|
43
44
|
resource
|
|
44
45
|
)
|
|
45
46
|
when {
|
|
@@ -19,13 +19,13 @@
|
|
|
19
19
|
|
|
20
20
|
@id("trust-safety.chat-block-toxicity")
|
|
21
21
|
@name("Block toxicity (chat profile)")
|
|
22
|
-
@description("Blocks process_prompt when any toxicity score is >= 71 (lower threshold for public chat).")
|
|
22
|
+
@description("Blocks process_prompt and process_response when any toxicity score is >= 71 (lower threshold for public chat).")
|
|
23
23
|
@severity("critical")
|
|
24
24
|
@tags("category:trust-safety,threat:harmful,threat:hate-speech,detection:ml,compliance:eu-ai-act")
|
|
25
25
|
@reject_message("Prompt blocked: toxic content detected at the chat-profile threshold.")
|
|
26
26
|
forbid (
|
|
27
27
|
principal,
|
|
28
|
-
action
|
|
28
|
+
action in [Guardrails::Action::"process_prompt", Guardrails::Action::"process_response"],
|
|
29
29
|
resource
|
|
30
30
|
)
|
|
31
31
|
when {
|
|
@@ -37,13 +37,14 @@ when {
|
|
|
37
37
|
|
|
38
38
|
@id("trust-safety.chat-block-restricted-topics")
|
|
39
39
|
@name("Block restricted topics (chat profile)")
|
|
40
|
-
@description("Blocks process_prompt and call_tool when topic_confidence >= 71 and content_topics contains a restricted category.")
|
|
40
|
+
@description("Blocks process_prompt, process_response, and call_tool when topic_confidence >= 71 and content_topics contains a restricted category.")
|
|
41
41
|
@severity("high")
|
|
42
42
|
@tags("category:trust-safety,threat:harmful,detection:ml,compliance:eu-ai-act")
|
|
43
43
|
@reject_message("Prompt blocked: content discusses a topic restricted for chat assistants.")
|
|
44
44
|
forbid (
|
|
45
45
|
principal,
|
|
46
|
-
action in [Guardrails::Action::"process_prompt",
|
|
46
|
+
action in [Guardrails::Action::"process_prompt",
|
|
47
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool"],
|
|
47
48
|
resource
|
|
48
49
|
)
|
|
49
50
|
when {
|
|
@@ -17,7 +17,7 @@
|
|
|
17
17
|
|
|
18
18
|
@id("data-protection.data-pipeline-block-secrets")
|
|
19
19
|
@name("Block secrets in data pipeline")
|
|
20
|
-
@description("Blocks process_prompt, call_tool, read_file, and write_file when secrets_detected is true.")
|
|
20
|
+
@description("Blocks process_prompt, process_response, call_tool, read_file, and write_file when secrets_detected is true.")
|
|
21
21
|
@severity("critical")
|
|
22
22
|
@tags("category:data-protection,threat:secrets,detection:rule,owasp:llm06")
|
|
23
23
|
@reject_message("Request blocked: secrets detected in a data pipeline — any credential exposure is unacceptable here.")
|
|
@@ -25,6 +25,7 @@ forbid (
|
|
|
25
25
|
principal,
|
|
26
26
|
action in [
|
|
27
27
|
Guardrails::Action::"process_prompt",
|
|
28
|
+
Guardrails::Action::"process_response",
|
|
28
29
|
Guardrails::Action::"call_tool",
|
|
29
30
|
Guardrails::Action::"read_file",
|
|
30
31
|
Guardrails::Action::"write_file"
|
|
@@ -17,13 +17,14 @@
|
|
|
17
17
|
|
|
18
18
|
@id("security.data-pipeline-block-injection")
|
|
19
19
|
@name("Block pipeline injection (data-pipeline profile)")
|
|
20
|
-
@description("Blocks process_prompt and call_tool when injection_score >= 66 (lower threshold for data pipelines).")
|
|
20
|
+
@description("Blocks process_prompt, process_response, and call_tool when injection_score >= 66 (lower threshold for data pipelines).")
|
|
21
21
|
@severity("high")
|
|
22
22
|
@tags("category:security,threat:injection,detection:ml,owasp:llm01")
|
|
23
23
|
@reject_message("Request blocked: prompt injection detected at the data-pipeline threshold — RAG inputs are high-risk for indirect injection.")
|
|
24
24
|
forbid (
|
|
25
25
|
principal,
|
|
26
|
-
action in [Guardrails::Action::"process_prompt",
|
|
26
|
+
action in [Guardrails::Action::"process_prompt",
|
|
27
|
+
Guardrails::Action::"process_response", Guardrails::Action::"call_tool"],
|
|
27
28
|
resource
|
|
28
29
|
)
|
|
29
30
|
when {
|
|
@@ -93,13 +93,13 @@ when {
|
|
|
93
93
|
|
|
94
94
|
@id("agent-identity.multi-agent-autonomous-injection")
|
|
95
95
|
@name("Block injection on autonomous agents (stricter)")
|
|
96
|
-
@description("Blocks process_prompt when agent_type is \"autonomous\" and injection_score >= 51.")
|
|
96
|
+
@description("Blocks process_prompt and process_response when agent_type is \"autonomous\" and injection_score >= 51.")
|
|
97
97
|
@severity("high")
|
|
98
|
-
@tags("category:agent-identity,threat:injection,detection:ml,surface:process-prompt,owasp:llm01")
|
|
98
|
+
@tags("category:agent-identity,threat:injection,detection:ml,surface:process-prompt,surface:process-response,owasp:llm01")
|
|
99
99
|
@reject_message("Prompt blocked: lower injection threshold applies to autonomous agents and was exceeded.")
|
|
100
100
|
forbid (
|
|
101
101
|
principal is Guardrails::Agent,
|
|
102
|
-
action
|
|
102
|
+
action in [Guardrails::Action::"process_prompt", Guardrails::Action::"process_response"],
|
|
103
103
|
resource
|
|
104
104
|
)
|
|
105
105
|
when {
|
|
@@ -109,13 +109,13 @@ when {
|
|
|
109
109
|
|
|
110
110
|
@id("agent-identity.multi-agent-autonomous-jailbreak")
|
|
111
111
|
@name("Block jailbreak on autonomous agents (stricter)")
|
|
112
|
-
@description("Blocks process_prompt when agent_type is \"autonomous\" and jailbreak_score >= 51.")
|
|
112
|
+
@description("Blocks process_prompt and process_response when agent_type is \"autonomous\" and jailbreak_score >= 51.")
|
|
113
113
|
@severity("high")
|
|
114
|
-
@tags("category:agent-identity,threat:jailbreak,detection:ml,surface:process-prompt,owasp:llm02")
|
|
114
|
+
@tags("category:agent-identity,threat:jailbreak,detection:ml,surface:process-prompt,surface:process-response,owasp:llm02")
|
|
115
115
|
@reject_message("Prompt blocked: lower jailbreak threshold applies to autonomous agents and was exceeded.")
|
|
116
116
|
forbid (
|
|
117
117
|
principal is Guardrails::Agent,
|
|
118
|
-
action
|
|
118
|
+
action in [Guardrails::Action::"process_prompt", Guardrails::Action::"process_response"],
|
|
119
119
|
resource
|
|
120
120
|
)
|
|
121
121
|
when {
|
|
@@ -482,15 +482,6 @@
|
|
|
482
482
|
"compliance:hipaa"
|
|
483
483
|
]
|
|
484
484
|
},
|
|
485
|
-
{
|
|
486
|
-
"id": "security.advanced-block-critical-severity",
|
|
487
|
-
"name": "Advanced Detection — Threat Severity",
|
|
488
|
-
"description": "Catch-all that blocks any content flagged as critical severity by any detector.",
|
|
489
|
-
"category": "security",
|
|
490
|
-
"file": "profiles/advanced_detection/threat_severity.cedar",
|
|
491
|
-
"severity": "critical",
|
|
492
|
-
"tags": ["category:security", "detection:aggregate", "posture:catch-all"]
|
|
493
|
-
},
|
|
494
485
|
{
|
|
495
486
|
"id": "agent-security.param-validation",
|
|
496
487
|
"name": "Action Parameter Validation",
|
|
@@ -680,6 +680,36 @@
|
|
|
680
680
|
"required": false,
|
|
681
681
|
"description": "All operation classes observed in the tool call, emitted by the AST command classifiers. Subset of: 'readonly', 'write_enabling', 'execute_enabling', 'network_access', 'unknown'. A single command can carry several classes; combine with contains() to match shapes — e.g. tool_operation_classes.contains(\"network_access\") && tool_operation_classes.contains(\"execute_enabling\") catches download-and-run (curl | sh). Used by the Bash Operation Classes template. 'unknown' appears when any unrecognized or variable-expanded command was seen and should be treated as deny-worthy."
|
|
682
682
|
},
|
|
683
|
+
{
|
|
684
|
+
"key": "resolved_target_paths",
|
|
685
|
+
"type": "string",
|
|
686
|
+
"required": false,
|
|
687
|
+
"description": "Newline-delimited (leading+trailing \\n) union of the statically-resolved absolute target paths a shell command touches, any capability, emitted by the bash AST detector. Cedar like is full-string anchored and every value starts with the \\n delimiter, so patterns must begin with '*': anchored sub-tree \"*\\n/etc/*\" (matches only paths under /etc, unlike the loose \"*/etc/*\" which also hits a project etc/ dir at any depth), bare directory \"*\\n/etc\\n*\" (e.g. rm -rf /etc, no trailing slash), exact file \"*\\n/etc/passwd\\n*\". Resolution is purely lexical (cwd-join + path.Clean; quoting, escapes, wrappers, cd/VAR/bash -c normalized); remote endpoints and dynamic operands are never fabricated."
|
|
688
|
+
},
|
|
689
|
+
{
|
|
690
|
+
"key": "read_target_paths",
|
|
691
|
+
"type": "string",
|
|
692
|
+
"required": false,
|
|
693
|
+
"description": "Newline-delimited resolved absolute paths a shell command reads or enumerates, emitted by the bash AST detector. \\n-anchored: match with like patterns that begin with '*' (see resolved_target_paths)."
|
|
694
|
+
},
|
|
695
|
+
{
|
|
696
|
+
"key": "write_target_paths",
|
|
697
|
+
"type": "string",
|
|
698
|
+
"required": false,
|
|
699
|
+
"description": "Newline-delimited resolved absolute paths a shell command writes, creates, or destroys (redirects, cp/mv/dd, curl/wget -o, scp/rsync local dest, tar/unzip/cpio extraction, yq -i), emitted by the bash AST detector. \\n-anchored: e.g. write_target_paths like \"*\\n/etc/cron.d/*\"."
|
|
700
|
+
},
|
|
701
|
+
{
|
|
702
|
+
"key": "exec_target_paths",
|
|
703
|
+
"type": "string",
|
|
704
|
+
"required": false,
|
|
705
|
+
"description": "Newline-delimited resolved absolute paths a shell command executes as a script, emitted by the bash AST detector. \\n-anchored: match with like patterns that begin with '*' (see resolved_target_paths)."
|
|
706
|
+
},
|
|
707
|
+
{
|
|
708
|
+
"key": "unresolved_target",
|
|
709
|
+
"type": "boolean",
|
|
710
|
+
"required": false,
|
|
711
|
+
"description": "True when a shell command's target hid behind a variable, glob, command substitution, or inline shell code that static analysis could not resolve, or when the 64-path / 4096-byte path-list cap truncated the results. Benign dev traffic sets this frequently (variables, globs, and command substitution are everywhere, and the truncation cap trips it too), so it is NOT a deny signal on its own — combine it with a path or operation match, and reserve a blanket deny-on-unresolved rule for high-assurance or allowlisted environments."
|
|
712
|
+
},
|
|
683
713
|
{
|
|
684
714
|
"key": "package_install_detected",
|
|
685
715
|
"type": "boolean",
|
|
@@ -246,6 +246,13 @@ action call_tool appliesTo {
|
|
|
246
246
|
// --- Tool Operation Classifier ---
|
|
247
247
|
tool_operation_classes?: Set<String>, // subset of {"readonly", "write_enabling", "execute_enabling", "network_access", "unknown"}
|
|
248
248
|
|
|
249
|
+
// --- Bash AST resolved target paths (#411 / CAP-DET-007) — newline-delimited (leading+trailing \n); Cedar `like` is anchored so patterns start with "*": sub-tree "*\n/etc/*", bare dir "*\n/etc\n*", exact "*\n/etc/passwd\n*" ---
|
|
250
|
+
resolved_target_paths?: String, // union of resolved absolute target paths, any capability
|
|
251
|
+
read_target_paths?: String, // paths the command reads or enumerates
|
|
252
|
+
write_target_paths?: String, // paths the command writes, creates, or destroys
|
|
253
|
+
exec_target_paths?: String, // paths executed as a script
|
|
254
|
+
unresolved_target?: Bool, // a target hid behind a variable/glob/$()/inline code
|
|
255
|
+
|
|
249
256
|
// --- Session Detection History (cross-turn sticky flags) ---
|
|
250
257
|
session_pii_detected?: Bool,
|
|
251
258
|
session_pii_types?: Set<String>,
|
|
@@ -41,6 +41,7 @@ export declare const AgentOpsContextKey: {
|
|
|
41
41
|
readonly EncodedTypes: "encoded_types";
|
|
42
42
|
readonly Event: "event";
|
|
43
43
|
readonly ExecAllowlist: "exec_allowlist";
|
|
44
|
+
readonly ExecTargetPaths: "exec_target_paths";
|
|
44
45
|
readonly FactualityScore: "factuality_score";
|
|
45
46
|
readonly FlowCompartments: "flow_compartments";
|
|
46
47
|
readonly FlowConfidentiality: "flow_confidentiality";
|
|
@@ -108,7 +109,9 @@ export declare const AgentOpsContextKey: {
|
|
|
108
109
|
readonly PrincipalCompartments: "principal_compartments";
|
|
109
110
|
readonly PrivilegeScope: "privilege_scope";
|
|
110
111
|
readonly ProfanityScore: "profanity_score";
|
|
112
|
+
readonly ReadTargetPaths: "read_target_paths";
|
|
111
113
|
readonly RequestId: "request_id";
|
|
114
|
+
readonly ResolvedTargetPaths: "resolved_target_paths";
|
|
112
115
|
readonly Role: "role";
|
|
113
116
|
readonly RpmExceeded: "rpm_exceeded";
|
|
114
117
|
readonly RpmRemainingPct: "rpm_remaining_pct";
|
|
@@ -158,15 +161,17 @@ export declare const AgentOpsContextKey: {
|
|
|
158
161
|
readonly TopicConfidence: "topic_confidence";
|
|
159
162
|
readonly TpmExceeded: "tpm_exceeded";
|
|
160
163
|
readonly TpmRemainingPct: "tpm_remaining_pct";
|
|
164
|
+
readonly UnresolvedTarget: "unresolved_target";
|
|
161
165
|
readonly UserEmail: "user_email";
|
|
162
166
|
readonly ViolenceScore: "violence_score";
|
|
163
167
|
readonly WeaponsScore: "weapons_score";
|
|
164
168
|
readonly WorkspaceRoot: "workspace_root";
|
|
165
169
|
readonly WritablePaths: "writable_paths";
|
|
170
|
+
readonly WriteTargetPaths: "write_target_paths";
|
|
166
171
|
};
|
|
167
172
|
export type AgentOpsContextKey = (typeof AgentOpsContextKey)[keyof typeof AgentOpsContextKey];
|
|
168
173
|
/**
|
|
169
174
|
* The full set of authorable context attribute keys for AgentOps.
|
|
170
175
|
* Iterate this to enumerate the authorable surface (cockpit, conformance).
|
|
171
176
|
*/
|
|
172
|
-
export declare const AgentOpsContextKeys: 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", "cwd", "detected_language", "detected_script", "detected_threats", "detector_count", "direction", "egress_hosts", "encoded_content_detected", "encoded_count", "encoded_score", "encoded_types", "event", "exec_allowlist", "factuality_score", "flow_compartments", "flow_confidentiality", "flow_data_types", "flow_integrity", "flow_origins", "flow_resolution_status", "flow_sink", "flow_sink_effects", "flow_sink_is_external", "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", "isolation_tier", "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", "max_threat_severity", "mcp_config_risk", "mcp_risk_score", "mcp_risk_type", "mcp_server", "mcp_server_verified", "mcp_tool", "mechanism_capabilities", "model_name", "model_provider", "multi_turn_detection", "network_egress", "package_check_status", "package_install_detected", "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", "principal_clearances", "principal_compartments", "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", "source", "sql_injection_detected", "sql_injection_score", "sql_injection_type", "surface", "suspicious_pattern", "threat_categories", "threat_count", "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", "user_email", "violence_score", "weapons_score", "workspace_root", "writable_paths"];
|
|
177
|
+
export declare const AgentOpsContextKeys: 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", "cwd", "detected_language", "detected_script", "detected_threats", "detector_count", "direction", "egress_hosts", "encoded_content_detected", "encoded_count", "encoded_score", "encoded_types", "event", "exec_allowlist", "exec_target_paths", "factuality_score", "flow_compartments", "flow_confidentiality", "flow_data_types", "flow_integrity", "flow_origins", "flow_resolution_status", "flow_sink", "flow_sink_effects", "flow_sink_is_external", "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", "isolation_tier", "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", "max_threat_severity", "mcp_config_risk", "mcp_risk_score", "mcp_risk_type", "mcp_server", "mcp_server_verified", "mcp_tool", "mechanism_capabilities", "model_name", "model_provider", "multi_turn_detection", "network_egress", "package_check_status", "package_install_detected", "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", "principal_clearances", "principal_compartments", "privilege_scope", "profanity_score", "read_target_paths", "request_id", "resolved_target_paths", "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", "source", "sql_injection_detected", "sql_injection_score", "sql_injection_type", "surface", "suspicious_pattern", "threat_categories", "threat_count", "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", "unresolved_target", "user_email", "violence_score", "weapons_score", "workspace_root", "writable_paths", "write_target_paths"];
|
|
@@ -43,6 +43,7 @@ export const AgentOpsContextKey = {
|
|
|
43
43
|
EncodedTypes: 'encoded_types',
|
|
44
44
|
Event: 'event',
|
|
45
45
|
ExecAllowlist: 'exec_allowlist',
|
|
46
|
+
ExecTargetPaths: 'exec_target_paths',
|
|
46
47
|
FactualityScore: 'factuality_score',
|
|
47
48
|
FlowCompartments: 'flow_compartments',
|
|
48
49
|
FlowConfidentiality: 'flow_confidentiality',
|
|
@@ -110,7 +111,9 @@ export const AgentOpsContextKey = {
|
|
|
110
111
|
PrincipalCompartments: 'principal_compartments',
|
|
111
112
|
PrivilegeScope: 'privilege_scope',
|
|
112
113
|
ProfanityScore: 'profanity_score',
|
|
114
|
+
ReadTargetPaths: 'read_target_paths',
|
|
113
115
|
RequestId: 'request_id',
|
|
116
|
+
ResolvedTargetPaths: 'resolved_target_paths',
|
|
114
117
|
Role: 'role',
|
|
115
118
|
RpmExceeded: 'rpm_exceeded',
|
|
116
119
|
RpmRemainingPct: 'rpm_remaining_pct',
|
|
@@ -160,11 +163,13 @@ export const AgentOpsContextKey = {
|
|
|
160
163
|
TopicConfidence: 'topic_confidence',
|
|
161
164
|
TpmExceeded: 'tpm_exceeded',
|
|
162
165
|
TpmRemainingPct: 'tpm_remaining_pct',
|
|
166
|
+
UnresolvedTarget: 'unresolved_target',
|
|
163
167
|
UserEmail: 'user_email',
|
|
164
168
|
ViolenceScore: 'violence_score',
|
|
165
169
|
WeaponsScore: 'weapons_score',
|
|
166
170
|
WorkspaceRoot: 'workspace_root',
|
|
167
171
|
WritablePaths: 'writable_paths',
|
|
172
|
+
WriteTargetPaths: 'write_target_paths',
|
|
168
173
|
};
|
|
169
174
|
/**
|
|
170
175
|
* The full set of authorable context attribute keys for AgentOps.
|
|
@@ -207,6 +212,7 @@ export const AgentOpsContextKeys = [
|
|
|
207
212
|
AgentOpsContextKey.EncodedTypes,
|
|
208
213
|
AgentOpsContextKey.Event,
|
|
209
214
|
AgentOpsContextKey.ExecAllowlist,
|
|
215
|
+
AgentOpsContextKey.ExecTargetPaths,
|
|
210
216
|
AgentOpsContextKey.FactualityScore,
|
|
211
217
|
AgentOpsContextKey.FlowCompartments,
|
|
212
218
|
AgentOpsContextKey.FlowConfidentiality,
|
|
@@ -274,7 +280,9 @@ export const AgentOpsContextKeys = [
|
|
|
274
280
|
AgentOpsContextKey.PrincipalCompartments,
|
|
275
281
|
AgentOpsContextKey.PrivilegeScope,
|
|
276
282
|
AgentOpsContextKey.ProfanityScore,
|
|
283
|
+
AgentOpsContextKey.ReadTargetPaths,
|
|
277
284
|
AgentOpsContextKey.RequestId,
|
|
285
|
+
AgentOpsContextKey.ResolvedTargetPaths,
|
|
278
286
|
AgentOpsContextKey.Role,
|
|
279
287
|
AgentOpsContextKey.RpmExceeded,
|
|
280
288
|
AgentOpsContextKey.RpmRemainingPct,
|
|
@@ -324,9 +332,11 @@ export const AgentOpsContextKeys = [
|
|
|
324
332
|
AgentOpsContextKey.TopicConfidence,
|
|
325
333
|
AgentOpsContextKey.TpmExceeded,
|
|
326
334
|
AgentOpsContextKey.TpmRemainingPct,
|
|
335
|
+
AgentOpsContextKey.UnresolvedTarget,
|
|
327
336
|
AgentOpsContextKey.UserEmail,
|
|
328
337
|
AgentOpsContextKey.ViolenceScore,
|
|
329
338
|
AgentOpsContextKey.WeaponsScore,
|
|
330
339
|
AgentOpsContextKey.WorkspaceRoot,
|
|
331
340
|
AgentOpsContextKey.WritablePaths,
|
|
341
|
+
AgentOpsContextKey.WriteTargetPaths,
|
|
332
342
|
];
|