veto-sdk 2.5.1 → 2.7.0
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/dist/cli/compile.js +1 -1
- package/dist/cli/compile.js.map +1 -1
- package/dist/cli/templates.js +1 -1
- package/dist/core/veto.d.ts +1 -0
- package/dist/core/veto.d.ts.map +1 -1
- package/dist/core/veto.js +24 -11
- package/dist/core/veto.js.map +1 -1
- package/dist/custom/providers/anthropic.d.ts +0 -13
- package/dist/custom/providers/anthropic.d.ts.map +1 -1
- package/dist/custom/providers/anthropic.js +39 -40
- package/dist/custom/providers/anthropic.js.map +1 -1
- package/dist/custom/providers/openai.d.ts +0 -13
- package/dist/custom/providers/openai.d.ts.map +1 -1
- package/dist/custom/providers/openai.js +40 -41
- package/dist/custom/providers/openai.js.map +1 -1
- package/dist/custom/providers/utils.d.ts +10 -0
- package/dist/custom/providers/utils.d.ts.map +1 -0
- package/dist/custom/providers/utils.js +130 -0
- package/dist/custom/providers/utils.js.map +1 -0
- package/dist/custom/types.d.ts +11 -18
- package/dist/custom/types.d.ts.map +1 -1
- package/dist/custom/types.js +70 -28
- package/dist/custom/types.js.map +1 -1
- package/dist/rules/feed-provider.d.ts +39 -0
- package/dist/rules/feed-provider.d.ts.map +1 -0
- package/dist/rules/feed-provider.js +65 -0
- package/dist/rules/feed-provider.js.map +1 -0
- package/dist/rules/index.d.ts +3 -1
- package/dist/rules/index.d.ts.map +1 -1
- package/dist/rules/index.js +6 -0
- package/dist/rules/index.js.map +1 -1
- package/dist/rules/local-evaluator.d.ts +14 -3
- package/dist/rules/local-evaluator.d.ts.map +1 -1
- package/dist/rules/local-evaluator.js +20 -5
- package/dist/rules/local-evaluator.js.map +1 -1
- package/dist/rules/pipeline-dsl.d.ts +802 -0
- package/dist/rules/pipeline-dsl.d.ts.map +1 -0
- package/dist/rules/pipeline-dsl.js +198 -0
- package/dist/rules/pipeline-dsl.js.map +1 -0
- package/dist/rules/policy-ir-schema.d.ts +62 -0
- package/dist/rules/policy-ir-schema.d.ts.map +1 -1
- package/dist/rules/policy-ir-schema.js +58 -0
- package/dist/rules/policy-ir-schema.js.map +1 -1
- package/dist/rules/policy-packs.d.ts.map +1 -1
- package/dist/rules/policy-packs.js +3 -0
- package/dist/rules/policy-packs.js.map +1 -1
- package/dist/rules/types.d.ts +78 -0
- package/dist/rules/types.d.ts.map +1 -1
- package/dist/rules/types.js +13 -0
- package/dist/rules/types.js.map +1 -1
- package/package.json +5 -1
- package/packs/eu-ai-act-starter.yaml +155 -0
- package/packs/hipaa-lite.yaml +154 -0
- package/packs/soc2-lite.yaml +136 -0
|
@@ -17,12 +17,23 @@
|
|
|
17
17
|
*
|
|
18
18
|
* @module rules/local-evaluator
|
|
19
19
|
*/
|
|
20
|
-
import type { Rule, RuleCondition } from './types.js';
|
|
20
|
+
import type { FeedProvider, Rule, RuleCondition } from './types.js';
|
|
21
21
|
export interface LocalEvalResult {
|
|
22
22
|
decision: 'allow' | 'deny' | 'require_approval' | null;
|
|
23
23
|
reason?: string;
|
|
24
24
|
ruleId?: string;
|
|
25
25
|
}
|
|
26
|
+
/**
|
|
27
|
+
* Optional knobs for local evaluation.
|
|
28
|
+
*
|
|
29
|
+
* `feedProvider` is required for rules whose condition values reference
|
|
30
|
+
* dynamic feeds. When absent, feed-backed conditions apply their
|
|
31
|
+
* `fallback` behavior exactly as if the snapshot were missing.
|
|
32
|
+
*/
|
|
33
|
+
export interface LocalEvalOptions {
|
|
34
|
+
feedProvider?: FeedProvider;
|
|
35
|
+
now_ms?: number;
|
|
36
|
+
}
|
|
26
37
|
/**
|
|
27
38
|
* Resolve a dot-notation field path in a nested object.
|
|
28
39
|
*
|
|
@@ -50,7 +61,7 @@ export declare function resolveFieldPath(path: string, obj: Record<string, unkno
|
|
|
50
61
|
*
|
|
51
62
|
* Unknown operators return false.
|
|
52
63
|
*/
|
|
53
|
-
export declare function evaluateCondition(condition: RuleCondition, context: Record<string, unknown
|
|
64
|
+
export declare function evaluateCondition(condition: RuleCondition, context: Record<string, unknown>, options?: LocalEvalOptions): boolean;
|
|
54
65
|
/**
|
|
55
66
|
* Evaluate an array of rules against a tool call.
|
|
56
67
|
*
|
|
@@ -61,5 +72,5 @@ export declare function evaluateCondition(condition: RuleCondition, context: Rec
|
|
|
61
72
|
* @param toolName - The tool being called (e.g. "browser_click")
|
|
62
73
|
* @param args - Context object for field resolution (typically `{ arguments: { ... } }`)
|
|
63
74
|
*/
|
|
64
|
-
export declare function evaluateRulesLocally(rules: Rule[], toolName: string, args: Record<string, unknown
|
|
75
|
+
export declare function evaluateRulesLocally(rules: Rule[], toolName: string, args: Record<string, unknown>, options?: LocalEvalOptions): LocalEvalResult;
|
|
65
76
|
//# sourceMappingURL=local-evaluator.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-evaluator.d.ts","sourceRoot":"","sources":["../../src/rules/local-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"local-evaluator.d.ts","sourceRoot":"","sources":["../../src/rules/local-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAEH,OAAO,KAAK,EAAE,YAAY,EAAE,IAAI,EAAE,aAAa,EAAE,MAAM,YAAY,CAAC;AAKpE,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,GAAG,MAAM,GAAG,kBAAkB,GAAG,IAAI,CAAC;IACvD,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;;;GAMG;AACH,MAAM,WAAW,gBAAgB;IAC/B,YAAY,CAAC,EAAE,YAAY,CAAC;IAC5B,MAAM,CAAC,EAAE,MAAM,CAAC;CACjB;AAED;;;;GAIG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,GAAG,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,GAC3B,OAAO,CAST;AAED;;;;;;;;;;;;;;;;;;;;GAoBG;AACH,wBAAgB,iBAAiB,CAC/B,SAAS,EAAE,aAAa,EACxB,OAAO,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAChC,OAAO,GAAE,gBAAqB,GAC7B,OAAO,CAmKT;AAED;;;;;;;;;GASG;AACH,wBAAgB,oBAAoB,CAClC,KAAK,EAAE,IAAI,EAAE,EACb,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,GAAE,gBAAqB,GAC7B,eAAe,CAiCjB"}
|
|
@@ -17,7 +17,9 @@
|
|
|
17
17
|
*
|
|
18
18
|
* @module rules/local-evaluator
|
|
19
19
|
*/
|
|
20
|
+
import { isConditionValueRef } from './types.js';
|
|
20
21
|
import { createSafeRegex, evaluateTimeWindow } from './condition-evaluator.js';
|
|
22
|
+
import { resolveFeedRef } from './feed-provider.js';
|
|
21
23
|
/**
|
|
22
24
|
* Resolve a dot-notation field path in a nested object.
|
|
23
25
|
*
|
|
@@ -56,13 +58,26 @@ export function resolveFieldPath(path, obj) {
|
|
|
56
58
|
*
|
|
57
59
|
* Unknown operators return false.
|
|
58
60
|
*/
|
|
59
|
-
export function evaluateCondition(condition, context) {
|
|
61
|
+
export function evaluateCondition(condition, context, options = {}) {
|
|
60
62
|
if (!condition.field || !condition.operator)
|
|
61
63
|
return false;
|
|
62
64
|
const fieldValue = resolveFieldPath(condition.field, context);
|
|
63
|
-
|
|
65
|
+
let expected = condition.value;
|
|
64
66
|
if (fieldValue === undefined && condition.operator !== 'not_exists')
|
|
65
67
|
return false;
|
|
68
|
+
// Resolve typed FeedRef / PipelineRef comparands against the injected
|
|
69
|
+
// provider. On miss/stale we apply the fallback and return. On hit,
|
|
70
|
+
// `expected` is reassigned to the resolved array — set-membership
|
|
71
|
+
// operators use it normally; other operators compare against the
|
|
72
|
+
// array and correctly fail their type checks below.
|
|
73
|
+
if (isConditionValueRef(expected)) {
|
|
74
|
+
const outcome = resolveFeedRef(expected, options.feedProvider, options.now_ms);
|
|
75
|
+
if ('fallback' in outcome) {
|
|
76
|
+
// fail_open: do not match. fail_closed: match.
|
|
77
|
+
return outcome.fallback === 'fail_closed';
|
|
78
|
+
}
|
|
79
|
+
expected = outcome.resolved;
|
|
80
|
+
}
|
|
66
81
|
switch (condition.operator) {
|
|
67
82
|
case 'equals':
|
|
68
83
|
if (typeof fieldValue === 'string' && typeof expected === 'string') {
|
|
@@ -222,7 +237,7 @@ export function evaluateCondition(condition, context) {
|
|
|
222
237
|
* @param toolName - The tool being called (e.g. "browser_click")
|
|
223
238
|
* @param args - Context object for field resolution (typically `{ arguments: { ... } }`)
|
|
224
239
|
*/
|
|
225
|
-
export function evaluateRulesLocally(rules, toolName, args) {
|
|
240
|
+
export function evaluateRulesLocally(rules, toolName, args, options = {}) {
|
|
226
241
|
for (const rule of rules) {
|
|
227
242
|
if (!rule.enabled)
|
|
228
243
|
continue;
|
|
@@ -232,12 +247,12 @@ export function evaluateRulesLocally(rules, toolName, args) {
|
|
|
232
247
|
// If `conditions` is present and non-empty, evaluate only those.
|
|
233
248
|
// Otherwise fall through to `condition_groups`.
|
|
234
249
|
if (rule.conditions && rule.conditions.length > 0) {
|
|
235
|
-
const allMatch = rule.conditions.every(c => evaluateCondition(c, args));
|
|
250
|
+
const allMatch = rule.conditions.every(c => evaluateCondition(c, args, options));
|
|
236
251
|
if (!allMatch)
|
|
237
252
|
continue;
|
|
238
253
|
}
|
|
239
254
|
else if (rule.condition_groups && rule.condition_groups.length > 0) {
|
|
240
|
-
const anyGroupMatch = rule.condition_groups.some(group => group.every(c => evaluateCondition(c, args)));
|
|
255
|
+
const anyGroupMatch = rule.condition_groups.some(group => group.every(c => evaluateCondition(c, args, options)));
|
|
241
256
|
if (!anyGroupMatch)
|
|
242
257
|
continue;
|
|
243
258
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"local-evaluator.js","sourceRoot":"","sources":["../../src/rules/local-evaluator.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;;;;;;;;GAkBG;AAGH,OAAO,EAAE,eAAe,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"local-evaluator.js","sourceRoot":"","sources":["../../src/rules/local-evaluator.ts"],"names":[],"mappings":"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"}
|