veto-sdk 1.17.0 → 2.2.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.
Files changed (156) hide show
  1. package/README.md +69 -203
  2. package/dist/browser/index.d.ts +1 -1
  3. package/dist/browser/index.d.ts.map +1 -1
  4. package/dist/browser/index.js.map +1 -1
  5. package/dist/browser/types.d.ts +17 -1
  6. package/dist/browser/types.d.ts.map +1 -1
  7. package/dist/browser/veto.d.ts +10 -0
  8. package/dist/browser/veto.d.ts.map +1 -1
  9. package/dist/browser/veto.js +69 -5
  10. package/dist/browser/veto.js.map +1 -1
  11. package/dist/cli/bin.js +0 -0
  12. package/dist/cli/compile.d.ts +22 -1
  13. package/dist/cli/compile.d.ts.map +1 -1
  14. package/dist/cli/compile.js +100 -21
  15. package/dist/cli/compile.js.map +1 -1
  16. package/dist/cli/diff.d.ts +2 -25
  17. package/dist/cli/diff.d.ts.map +1 -1
  18. package/dist/cli/diff.js +5 -327
  19. package/dist/cli/diff.js.map +1 -1
  20. package/dist/cli/headless.js +1 -1
  21. package/dist/cli/headless.js.map +1 -1
  22. package/dist/cli/index.d.ts +3 -1
  23. package/dist/cli/index.d.ts.map +1 -1
  24. package/dist/cli/index.js +2 -0
  25. package/dist/cli/index.js.map +1 -1
  26. package/dist/cli/repl-generate.d.ts.map +1 -1
  27. package/dist/cli/repl-generate.js +346 -17
  28. package/dist/cli/repl-generate.js.map +1 -1
  29. package/dist/cli/replay-engine.d.ts +77 -0
  30. package/dist/cli/replay-engine.d.ts.map +1 -0
  31. package/dist/cli/replay-engine.js +379 -0
  32. package/dist/cli/replay-engine.js.map +1 -0
  33. package/dist/cli/replay.d.ts +57 -0
  34. package/dist/cli/replay.d.ts.map +1 -0
  35. package/dist/cli/replay.js +202 -0
  36. package/dist/cli/replay.js.map +1 -0
  37. package/dist/cli/runner.d.ts.map +1 -1
  38. package/dist/cli/runner.js +20 -0
  39. package/dist/cli/runner.js.map +1 -1
  40. package/dist/cli/templates.d.ts +1 -1
  41. package/dist/cli/templates.d.ts.map +1 -1
  42. package/dist/cli/templates.js +1 -1
  43. package/dist/cloud/client.d.ts.map +1 -1
  44. package/dist/cloud/client.js +6 -1
  45. package/dist/cloud/client.js.map +1 -1
  46. package/dist/cloud/types.d.ts +33 -2
  47. package/dist/cloud/types.d.ts.map +1 -1
  48. package/dist/core/events.d.ts +11 -1
  49. package/dist/core/events.d.ts.map +1 -1
  50. package/dist/core/events.js +4 -0
  51. package/dist/core/events.js.map +1 -1
  52. package/dist/core/interceptor.d.ts +20 -1
  53. package/dist/core/interceptor.d.ts.map +1 -1
  54. package/dist/core/interceptor.js +47 -3
  55. package/dist/core/interceptor.js.map +1 -1
  56. package/dist/core/output-validator.d.ts +11 -0
  57. package/dist/core/output-validator.d.ts.map +1 -1
  58. package/dist/core/output-validator.js +88 -15
  59. package/dist/core/output-validator.js.map +1 -1
  60. package/dist/core/protect.d.ts +3 -1
  61. package/dist/core/protect.d.ts.map +1 -1
  62. package/dist/core/protect.js +14 -4
  63. package/dist/core/protect.js.map +1 -1
  64. package/dist/core/veto.d.ts +54 -1
  65. package/dist/core/veto.d.ts.map +1 -1
  66. package/dist/core/veto.js +471 -91
  67. package/dist/core/veto.js.map +1 -1
  68. package/dist/deterministic/types.d.ts +103 -0
  69. package/dist/deterministic/types.d.ts.map +1 -1
  70. package/dist/economic/budget-engine.d.ts +29 -0
  71. package/dist/economic/budget-engine.d.ts.map +1 -0
  72. package/dist/economic/budget-engine.js +146 -0
  73. package/dist/economic/budget-engine.js.map +1 -0
  74. package/dist/economic/connectors/ap2.d.ts +51 -0
  75. package/dist/economic/connectors/ap2.d.ts.map +1 -0
  76. package/dist/economic/connectors/ap2.js +133 -0
  77. package/dist/economic/connectors/ap2.js.map +1 -0
  78. package/dist/economic/connectors/index.d.ts +8 -0
  79. package/dist/economic/connectors/index.d.ts.map +1 -0
  80. package/dist/economic/connectors/index.js +8 -0
  81. package/dist/economic/connectors/index.js.map +1 -0
  82. package/dist/economic/connectors/mpp.d.ts +41 -0
  83. package/dist/economic/connectors/mpp.d.ts.map +1 -0
  84. package/dist/economic/connectors/mpp.js +97 -0
  85. package/dist/economic/connectors/mpp.js.map +1 -0
  86. package/dist/economic/connectors/x402.d.ts +20 -0
  87. package/dist/economic/connectors/x402.d.ts.map +1 -0
  88. package/dist/economic/connectors/x402.js +142 -0
  89. package/dist/economic/connectors/x402.js.map +1 -0
  90. package/dist/economic/evaluator.d.ts +77 -0
  91. package/dist/economic/evaluator.d.ts.map +1 -0
  92. package/dist/economic/evaluator.js +231 -0
  93. package/dist/economic/evaluator.js.map +1 -0
  94. package/dist/economic/index.d.ts +13 -0
  95. package/dist/economic/index.d.ts.map +1 -0
  96. package/dist/economic/index.js +15 -0
  97. package/dist/economic/index.js.map +1 -0
  98. package/dist/economic/types.d.ts +188 -0
  99. package/dist/economic/types.d.ts.map +1 -0
  100. package/dist/economic/types.js +10 -0
  101. package/dist/economic/types.js.map +1 -0
  102. package/dist/extractors/content.d.ts +42 -0
  103. package/dist/extractors/content.d.ts.map +1 -0
  104. package/dist/extractors/content.js +154 -0
  105. package/dist/extractors/content.js.map +1 -0
  106. package/dist/extractors/index.d.ts +7 -0
  107. package/dist/extractors/index.d.ts.map +1 -0
  108. package/dist/extractors/index.js +7 -0
  109. package/dist/extractors/index.js.map +1 -0
  110. package/dist/index.d.ts +10 -4
  111. package/dist/index.d.ts.map +1 -1
  112. package/dist/index.js +10 -2
  113. package/dist/index.js.map +1 -1
  114. package/dist/policy/generator.d.ts +110 -0
  115. package/dist/policy/generator.d.ts.map +1 -0
  116. package/dist/policy/generator.js +463 -0
  117. package/dist/policy/generator.js.map +1 -0
  118. package/dist/policy/index.d.ts +7 -0
  119. package/dist/policy/index.d.ts.map +1 -0
  120. package/dist/policy/index.js +7 -0
  121. package/dist/policy/index.js.map +1 -0
  122. package/dist/providers/adapters.d.ts +27 -0
  123. package/dist/providers/adapters.d.ts.map +1 -1
  124. package/dist/providers/adapters.js +58 -0
  125. package/dist/providers/adapters.js.map +1 -1
  126. package/dist/rules/condition-evaluator.d.ts +2 -1
  127. package/dist/rules/condition-evaluator.d.ts.map +1 -1
  128. package/dist/rules/condition-evaluator.js +97 -7
  129. package/dist/rules/condition-evaluator.js.map +1 -1
  130. package/dist/rules/index.d.ts +1 -0
  131. package/dist/rules/index.d.ts.map +1 -1
  132. package/dist/rules/index.js +1 -0
  133. package/dist/rules/index.js.map +1 -1
  134. package/dist/rules/local-evaluator.d.ts +69 -0
  135. package/dist/rules/local-evaluator.d.ts.map +1 -0
  136. package/dist/rules/local-evaluator.js +217 -0
  137. package/dist/rules/local-evaluator.js.map +1 -0
  138. package/dist/rules/policy-ir-schema.d.ts +132 -1
  139. package/dist/rules/policy-ir-schema.d.ts.map +1 -1
  140. package/dist/rules/policy-ir-schema.js +114 -0
  141. package/dist/rules/policy-ir-schema.js.map +1 -1
  142. package/dist/rules/policy-packs.d.ts.map +1 -1
  143. package/dist/rules/policy-packs.js +1 -0
  144. package/dist/rules/policy-packs.js.map +1 -1
  145. package/dist/rules/types.d.ts +3 -1
  146. package/dist/rules/types.d.ts.map +1 -1
  147. package/dist/rules/types.js.map +1 -1
  148. package/dist/types/config.d.ts +2 -1
  149. package/dist/types/config.d.ts.map +1 -1
  150. package/dist/types/config.js.map +1 -1
  151. package/dist/utils/logger.d.ts +38 -2
  152. package/dist/utils/logger.d.ts.map +1 -1
  153. package/dist/utils/logger.js +231 -26
  154. package/dist/utils/logger.js.map +1 -1
  155. package/package.json +9 -1
  156. package/packs/economic-agent.yaml +62 -0
@@ -0,0 +1,217 @@
1
+ /**
2
+ * Local rule evaluator — evaluate Rule[] against a tool call without cloud.
3
+ *
4
+ * Supports 16 operators, dot-notation field resolution, AND/OR condition
5
+ * groups, and tool filtering. Designed for sub-millisecond local evaluation.
6
+ *
7
+ * Key behavior: undefined fields NEVER match. This prevents false positives
8
+ * on negative operators like not_equals, not_contains, not_in.
9
+ *
10
+ * **Divergences from canonical condition-evaluator.ts:**
11
+ * - All string comparisons are case-insensitive (canonical is case-sensitive).
12
+ * - `within_hours`/`outside_hours` use wall clock time with "HH:MM-HH:MM"
13
+ * strings (canonical uses field values as timestamps with structured
14
+ * {@link TimeWindowConditionValue} objects including timezone/day support).
15
+ * - `percent_of` falls back to simplified `fieldValue >= expected` when
16
+ * no `reference` field is provided (canonical requires `reference`).
17
+ *
18
+ * @module rules/local-evaluator
19
+ */
20
+ import { createSafeRegex } from './condition-evaluator.js';
21
+ /**
22
+ * Resolve a dot-notation field path in a nested object.
23
+ *
24
+ * Returns `undefined` for any broken path segment.
25
+ */
26
+ export function resolveFieldPath(path, obj) {
27
+ const parts = path.split('.');
28
+ let current = obj;
29
+ for (const part of parts) {
30
+ if (current === null || current === undefined || typeof current !== 'object')
31
+ return undefined;
32
+ current = current[part];
33
+ }
34
+ return current;
35
+ }
36
+ /**
37
+ * Evaluate a single condition against a context object.
38
+ *
39
+ * All string comparisons are case-insensitive. This differs from the
40
+ * canonical `condition-evaluator.ts` which is case-sensitive.
41
+ *
42
+ * **`within_hours` / `outside_hours` divergence:**
43
+ * The local evaluator uses wall clock time (not the field value).
44
+ * Expected format is a simple `"HH:MM-HH:MM"` string. There is no
45
+ * timezone or day-of-week support. This intentionally diverges from the
46
+ * canonical evaluator which interprets the field value as a timestamp
47
+ * and uses structured `TimeWindowConditionValue` objects with timezone
48
+ * and day support. The simplified approach is designed for local/browser
49
+ * use where wall clock checks are sufficient.
50
+ *
51
+ * **`percent_of` divergence:**
52
+ * When a `reference` field is present on the condition, the local
53
+ * evaluator resolves it and computes `fieldValue / referenceValue * 100`,
54
+ * returning true when the percentage exceeds `expected`. When no
55
+ * `reference` field exists, it falls back to a simplified comparison:
56
+ * `fieldValue >= expected`. The canonical evaluator always requires a
57
+ * `reference` field and returns false without one.
58
+ *
59
+ * Unknown operators return false.
60
+ */
61
+ export function evaluateCondition(condition, context) {
62
+ if (!condition.field || !condition.operator)
63
+ return true;
64
+ const fieldValue = resolveFieldPath(condition.field, context);
65
+ const expected = condition.value;
66
+ if (fieldValue === undefined)
67
+ return false;
68
+ switch (condition.operator) {
69
+ case 'equals':
70
+ if (typeof fieldValue === 'string' && typeof expected === 'string') {
71
+ return fieldValue.toLowerCase() === expected.toLowerCase();
72
+ }
73
+ return fieldValue === expected;
74
+ case 'not_equals':
75
+ if (typeof fieldValue === 'string' && typeof expected === 'string') {
76
+ return fieldValue.toLowerCase() !== expected.toLowerCase();
77
+ }
78
+ return fieldValue !== expected;
79
+ case 'contains':
80
+ if (typeof fieldValue === 'string' && typeof expected === 'string') {
81
+ return fieldValue.toLowerCase().includes(expected.toLowerCase());
82
+ }
83
+ if (Array.isArray(fieldValue))
84
+ return fieldValue.includes(expected);
85
+ return false;
86
+ case 'not_contains':
87
+ if (typeof fieldValue === 'string' && typeof expected === 'string') {
88
+ return !fieldValue.toLowerCase().includes(expected.toLowerCase());
89
+ }
90
+ if (Array.isArray(fieldValue))
91
+ return !fieldValue.includes(expected);
92
+ return false;
93
+ case 'starts_with':
94
+ return (typeof fieldValue === 'string' &&
95
+ typeof expected === 'string' &&
96
+ fieldValue.toLowerCase().startsWith(expected.toLowerCase()));
97
+ case 'ends_with':
98
+ return (typeof fieldValue === 'string' &&
99
+ typeof expected === 'string' &&
100
+ fieldValue.toLowerCase().endsWith(expected.toLowerCase()));
101
+ case 'matches':
102
+ if (typeof fieldValue === 'string' && typeof expected === 'string') {
103
+ const regex = createSafeRegex(expected, 'i');
104
+ return regex !== null && regex.test(fieldValue);
105
+ }
106
+ return false;
107
+ case 'greater_than':
108
+ return typeof fieldValue === 'number' && typeof expected === 'number' && fieldValue > expected;
109
+ case 'less_than':
110
+ return typeof fieldValue === 'number' && typeof expected === 'number' && fieldValue < expected;
111
+ case 'in':
112
+ return Array.isArray(expected) && expected.includes(fieldValue);
113
+ case 'not_in':
114
+ return Array.isArray(expected) && !expected.includes(fieldValue);
115
+ case 'length_greater_than':
116
+ if (typeof fieldValue === 'string' || Array.isArray(fieldValue)) {
117
+ return typeof expected === 'number' && fieldValue.length > expected;
118
+ }
119
+ return false;
120
+ case 'percent_of': {
121
+ if (typeof fieldValue !== 'number' || typeof expected !== 'number')
122
+ return false;
123
+ if (typeof condition.reference === 'string') {
124
+ const referenceValue = resolveFieldPath(condition.reference, context);
125
+ if (typeof referenceValue !== 'number' || referenceValue === 0)
126
+ return false;
127
+ return (fieldValue / referenceValue) * 100 > expected;
128
+ }
129
+ return fieldValue >= expected;
130
+ }
131
+ /**
132
+ * `within_hours` / `outside_hours` — wall clock check.
133
+ *
134
+ * Uses the current wall clock time, NOT the field value. Expected
135
+ * value is a simple `"HH:MM-HH:MM"` string (24h format). No
136
+ * timezone or day-of-week support. Wrap-around ranges (e.g.
137
+ * `"22:00-06:00"`) are supported. This intentionally diverges
138
+ * from the canonical `condition-evaluator.ts`.
139
+ */
140
+ case 'within_hours':
141
+ case 'outside_hours': {
142
+ if (typeof expected !== 'string')
143
+ return false;
144
+ const parts = expected.split('-');
145
+ if (parts.length !== 2)
146
+ return false;
147
+ const startParts = parts[0].split(':').map(Number);
148
+ const endParts = parts[1].split(':').map(Number);
149
+ const [sH, sM] = startParts;
150
+ const [eH, eM] = endParts;
151
+ if (isNaN(sH) || isNaN(sM) || isNaN(eH) || isNaN(eM))
152
+ return false;
153
+ if (sH < 0 || sH > 23 || eH < 0 || eH > 23)
154
+ return false;
155
+ if (sM < 0 || sM > 59 || eM < 0 || eM > 59)
156
+ return false;
157
+ const now = new Date();
158
+ const nowMins = now.getHours() * 60 + now.getMinutes();
159
+ const startMins = sH * 60 + sM;
160
+ const endMins = eH * 60 + eM;
161
+ let within;
162
+ if (startMins <= endMins) {
163
+ within = nowMins >= startMins && nowMins < endMins;
164
+ }
165
+ else {
166
+ within = nowMins >= startMins || nowMins < endMins;
167
+ }
168
+ return condition.operator === 'within_hours' ? within : !within;
169
+ }
170
+ default:
171
+ return false;
172
+ }
173
+ }
174
+ /**
175
+ * Evaluate an array of rules against a tool call.
176
+ *
177
+ * Rules are evaluated in order. First matching rule wins.
178
+ * Returns `null` if no rule matched (caller should fall through to cloud).
179
+ *
180
+ * @param rules - Rules to evaluate (only enabled rules are considered)
181
+ * @param toolName - The tool being called (e.g. "browser_click")
182
+ * @param args - Context object for field resolution (typically `{ arguments: { ... } }`)
183
+ */
184
+ export function evaluateRulesLocally(rules, toolName, args) {
185
+ for (const rule of rules) {
186
+ if (!rule.enabled)
187
+ continue;
188
+ if (rule.tools && rule.tools.length > 0 && !rule.tools.includes(toolName))
189
+ continue;
190
+ // Conditions-first fallthrough: matches canonical evaluateConditionCollections.
191
+ // If `conditions` is present and non-empty, evaluate only those.
192
+ // Otherwise fall through to `condition_groups`.
193
+ if (rule.conditions && rule.conditions.length > 0) {
194
+ const allMatch = rule.conditions.every(c => evaluateCondition(c, args));
195
+ if (!allMatch)
196
+ continue;
197
+ }
198
+ else if (rule.condition_groups && rule.condition_groups.length > 0) {
199
+ const anyGroupMatch = rule.condition_groups.some(group => group.every(c => evaluateCondition(c, args)));
200
+ if (!anyGroupMatch)
201
+ continue;
202
+ }
203
+ const action = rule.action;
204
+ if (action === 'block') {
205
+ return { decision: 'deny', reason: rule.description || rule.name, ruleId: rule.id };
206
+ }
207
+ if (action === 'require_approval') {
208
+ return { decision: 'require_approval', reason: rule.description || rule.name, ruleId: rule.id };
209
+ }
210
+ if (action === 'allow') {
211
+ return { decision: 'allow', ruleId: rule.id };
212
+ }
213
+ // warn/log: no enforcement, continue to next rule
214
+ }
215
+ return { decision: null };
216
+ }
217
+ //# sourceMappingURL=local-evaluator.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"local-evaluator.js","sourceRoot":"","sources":["../../src/rules/local-evaluator.ts"],"names":[],"mappings":"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"}
@@ -11,6 +11,8 @@ export declare const POLICY_IR_V1_SCHEMA: {
11
11
  readonly required: readonly ["output_rules"];
12
12
  }, {
13
13
  readonly required: readonly ["extends"];
14
+ }, {
15
+ readonly required: readonly ["economic"];
14
16
  }];
15
17
  readonly properties: {
16
18
  readonly version: {
@@ -48,6 +50,9 @@ export declare const POLICY_IR_V1_SCHEMA: {
48
50
  readonly settings: {
49
51
  readonly $ref: "#/$defs/Settings";
50
52
  };
53
+ readonly economic: {
54
+ readonly $ref: "#/$defs/EconomicPolicy";
55
+ };
51
56
  };
52
57
  readonly additionalProperties: false;
53
58
  readonly $defs: {
@@ -225,6 +230,11 @@ export declare const POLICY_IR_V1_SCHEMA: {
225
230
  readonly value: {
226
231
  readonly description: "The value to compare the field against.";
227
232
  };
233
+ readonly reference: {
234
+ readonly type: "string";
235
+ readonly minLength: 1;
236
+ readonly description: "Optional dot-notation reference path used by dynamic operators.";
237
+ };
228
238
  };
229
239
  readonly allOf: readonly [{
230
240
  readonly if: {
@@ -241,6 +251,23 @@ export declare const POLICY_IR_V1_SCHEMA: {
241
251
  };
242
252
  };
243
253
  };
254
+ }, {
255
+ readonly if: {
256
+ readonly properties: {
257
+ readonly operator: {
258
+ readonly const: "percent_of";
259
+ };
260
+ };
261
+ };
262
+ readonly then: {
263
+ readonly required: readonly ["reference"];
264
+ readonly properties: {
265
+ readonly value: {
266
+ readonly type: "number";
267
+ readonly exclusiveMinimum: 0;
268
+ };
269
+ };
270
+ };
244
271
  }];
245
272
  readonly additionalProperties: false;
246
273
  };
@@ -335,7 +362,7 @@ export declare const POLICY_IR_V1_SCHEMA: {
335
362
  };
336
363
  readonly Operator: {
337
364
  readonly type: "string";
338
- readonly enum: readonly ["equals", "not_equals", "contains", "not_contains", "starts_with", "ends_with", "matches", "greater_than", "less_than", "length_greater_than", "in", "not_in", "outside_hours", "within_hours"];
365
+ readonly enum: readonly ["equals", "not_equals", "contains", "not_contains", "starts_with", "ends_with", "matches", "greater_than", "less_than", "percent_of", "length_greater_than", "in", "not_in", "outside_hours", "within_hours"];
339
366
  readonly description: "Comparison operator.";
340
367
  };
341
368
  readonly Severity: {
@@ -375,6 +402,110 @@ export declare const POLICY_IR_V1_SCHEMA: {
375
402
  };
376
403
  readonly additionalProperties: false;
377
404
  };
405
+ readonly EconomicPolicy: {
406
+ readonly type: "object";
407
+ readonly description: "Economic authorization policy for x402, MPP, and AP2 protocols.";
408
+ readonly properties: {
409
+ readonly budgets: {
410
+ readonly type: "array";
411
+ readonly items: {
412
+ readonly $ref: "#/$defs/EconomicBudget";
413
+ };
414
+ readonly description: "Budget configurations per scope.";
415
+ };
416
+ readonly cost_extraction: {
417
+ readonly type: "object";
418
+ readonly properties: {
419
+ readonly default: {
420
+ readonly type: "string";
421
+ readonly description: "Default dot-notation path to extract cost from tool arguments.";
422
+ };
423
+ readonly overrides: {
424
+ readonly type: "object";
425
+ readonly additionalProperties: {
426
+ readonly type: "string";
427
+ };
428
+ readonly description: "Per-tool cost extraction path overrides.";
429
+ };
430
+ };
431
+ readonly additionalProperties: false;
432
+ };
433
+ readonly payer: {
434
+ readonly type: "object";
435
+ readonly properties: {
436
+ readonly required: {
437
+ readonly type: "boolean";
438
+ readonly description: "Whether a payer identity is required.";
439
+ };
440
+ readonly approved: {
441
+ readonly type: "array";
442
+ readonly items: {
443
+ readonly type: "string";
444
+ };
445
+ readonly description: "Allowlist of approved payer identifiers.";
446
+ };
447
+ };
448
+ readonly additionalProperties: false;
449
+ };
450
+ readonly denial_reasons: {
451
+ readonly type: "object";
452
+ readonly description: "Custom denial message templates. Keys are denial reason codes, values are message templates with {variable} placeholders.";
453
+ readonly properties: {
454
+ readonly budget_exceeded: {
455
+ readonly type: "string";
456
+ };
457
+ readonly approval_required: {
458
+ readonly type: "string";
459
+ };
460
+ readonly payer_missing: {
461
+ readonly type: "string";
462
+ };
463
+ readonly payer_unauthorized: {
464
+ readonly type: "string";
465
+ };
466
+ readonly currency_mismatch: {
467
+ readonly type: "string";
468
+ };
469
+ readonly connector_error: {
470
+ readonly type: "string";
471
+ };
472
+ };
473
+ readonly additionalProperties: false;
474
+ };
475
+ };
476
+ readonly additionalProperties: false;
477
+ };
478
+ readonly EconomicBudget: {
479
+ readonly type: "object";
480
+ readonly required: readonly ["scope", "limit", "currency", "window"];
481
+ readonly properties: {
482
+ readonly scope: {
483
+ readonly type: "string";
484
+ readonly enum: readonly ["session", "agent", "user", "global"];
485
+ readonly description: "Budget scope.";
486
+ };
487
+ readonly limit: {
488
+ readonly type: "number";
489
+ readonly minimum: 0;
490
+ readonly description: "Maximum spend limit.";
491
+ };
492
+ readonly currency: {
493
+ readonly type: "string";
494
+ readonly minLength: 1;
495
+ readonly description: "Currency code (e.g., \"USD\").";
496
+ };
497
+ readonly approval_threshold: {
498
+ readonly type: "number";
499
+ readonly minimum: 0;
500
+ readonly description: "Cost above which approval is required.";
501
+ };
502
+ readonly window: {
503
+ readonly type: "string";
504
+ readonly description: "Budget time window (e.g., \"session\", \"24h\").";
505
+ };
506
+ };
507
+ readonly additionalProperties: false;
508
+ };
378
509
  };
379
510
  };
380
511
  //# sourceMappingURL=policy-ir-schema.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy-ir-schema.d.ts","sourceRoot":"","sources":["../../src/rules/policy-ir-schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAoWtB,CAAC"}
1
+ {"version":3,"file":"policy-ir-schema.d.ts","sourceRoot":"","sources":["../../src/rules/policy-ir-schema.ts"],"names":[],"mappings":"AAAA,eAAO,MAAM,mBAAmB;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;CAsdtB,CAAC"}
@@ -9,6 +9,7 @@ export const POLICY_IR_V1_SCHEMA = {
9
9
  { required: ['rules'] },
10
10
  { required: ['output_rules'] },
11
11
  { required: ['extends'] },
12
+ { required: ['economic'] },
12
13
  ],
13
14
  properties: {
14
15
  version: {
@@ -42,6 +43,9 @@ export const POLICY_IR_V1_SCHEMA = {
42
43
  settings: {
43
44
  $ref: '#/$defs/Settings',
44
45
  },
46
+ economic: {
47
+ $ref: '#/$defs/EconomicPolicy',
48
+ },
45
49
  },
46
50
  additionalProperties: false,
47
51
  $defs: {
@@ -197,6 +201,11 @@ export const POLICY_IR_V1_SCHEMA = {
197
201
  value: {
198
202
  description: 'The value to compare the field against.',
199
203
  },
204
+ reference: {
205
+ type: 'string',
206
+ minLength: 1,
207
+ description: 'Optional dot-notation reference path used by dynamic operators.',
208
+ },
200
209
  },
201
210
  allOf: [
202
211
  {
@@ -213,6 +222,24 @@ export const POLICY_IR_V1_SCHEMA = {
213
222
  },
214
223
  },
215
224
  },
225
+ {
226
+ if: {
227
+ properties: {
228
+ operator: {
229
+ const: 'percent_of',
230
+ },
231
+ },
232
+ },
233
+ then: {
234
+ required: ['reference'],
235
+ properties: {
236
+ value: {
237
+ type: 'number',
238
+ exclusiveMinimum: 0,
239
+ },
240
+ },
241
+ },
242
+ },
216
243
  ],
217
244
  additionalProperties: false,
218
245
  },
@@ -310,6 +337,7 @@ export const POLICY_IR_V1_SCHEMA = {
310
337
  'matches',
311
338
  'greater_than',
312
339
  'less_than',
340
+ 'percent_of',
313
341
  'length_greater_than',
314
342
  'in',
315
343
  'not_in',
@@ -353,6 +381,92 @@ export const POLICY_IR_V1_SCHEMA = {
353
381
  },
354
382
  additionalProperties: false,
355
383
  },
384
+ EconomicPolicy: {
385
+ type: 'object',
386
+ description: 'Economic authorization policy for x402, MPP, and AP2 protocols.',
387
+ properties: {
388
+ budgets: {
389
+ type: 'array',
390
+ items: { $ref: '#/$defs/EconomicBudget' },
391
+ description: 'Budget configurations per scope.',
392
+ },
393
+ cost_extraction: {
394
+ type: 'object',
395
+ properties: {
396
+ default: {
397
+ type: 'string',
398
+ description: 'Default dot-notation path to extract cost from tool arguments.',
399
+ },
400
+ overrides: {
401
+ type: 'object',
402
+ additionalProperties: { type: 'string' },
403
+ description: 'Per-tool cost extraction path overrides.',
404
+ },
405
+ },
406
+ additionalProperties: false,
407
+ },
408
+ payer: {
409
+ type: 'object',
410
+ properties: {
411
+ required: {
412
+ type: 'boolean',
413
+ description: 'Whether a payer identity is required.',
414
+ },
415
+ approved: {
416
+ type: 'array',
417
+ items: { type: 'string' },
418
+ description: 'Allowlist of approved payer identifiers.',
419
+ },
420
+ },
421
+ additionalProperties: false,
422
+ },
423
+ denial_reasons: {
424
+ type: 'object',
425
+ description: 'Custom denial message templates. Keys are denial reason codes, values are message templates with {variable} placeholders.',
426
+ properties: {
427
+ budget_exceeded: { type: 'string' },
428
+ approval_required: { type: 'string' },
429
+ payer_missing: { type: 'string' },
430
+ payer_unauthorized: { type: 'string' },
431
+ currency_mismatch: { type: 'string' },
432
+ connector_error: { type: 'string' },
433
+ },
434
+ additionalProperties: false,
435
+ },
436
+ },
437
+ additionalProperties: false,
438
+ },
439
+ EconomicBudget: {
440
+ type: 'object',
441
+ required: ['scope', 'limit', 'currency', 'window'],
442
+ properties: {
443
+ scope: {
444
+ type: 'string',
445
+ enum: ['session', 'agent', 'user', 'global'],
446
+ description: 'Budget scope.',
447
+ },
448
+ limit: {
449
+ type: 'number',
450
+ minimum: 0,
451
+ description: 'Maximum spend limit.',
452
+ },
453
+ currency: {
454
+ type: 'string',
455
+ minLength: 1,
456
+ description: 'Currency code (e.g., "USD").',
457
+ },
458
+ approval_threshold: {
459
+ type: 'number',
460
+ minimum: 0,
461
+ description: 'Cost above which approval is required.',
462
+ },
463
+ window: {
464
+ type: 'string',
465
+ description: 'Budget time window (e.g., "session", "24h").',
466
+ },
467
+ },
468
+ additionalProperties: false,
469
+ },
356
470
  },
357
471
  };
358
472
  //# sourceMappingURL=policy-ir-schema.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"policy-ir-schema.js","sourceRoot":"","sources":["../../src/rules/policy-ir-schema.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-ir-schema.js","sourceRoot":"","sources":["../../src/rules/policy-ir-schema.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"policy-packs.d.ts","sourceRoot":"","sources":["../../src/rules/policy-packs.ts"],"names":[],"mappings":"AAiBA,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAEpD;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBrE;AA+CD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,GACzB,cAAc,CAqBhB;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GACxC,cAAc,CAyBhB"}
1
+ {"version":3,"file":"policy-packs.d.ts","sourceRoot":"","sources":["../../src/rules/policy-packs.ts"],"names":[],"mappings":"AAkBA,KAAK,cAAc,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;AAE9C,wBAAgB,yBAAyB,IAAI,MAAM,EAAE,CAEpD;AAED,wBAAgB,uBAAuB,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAMhE;AAED,wBAAgB,4BAA4B,CAAC,QAAQ,EAAE,MAAM,GAAG,MAAM,CAoBrE;AA+CD,wBAAgB,mBAAmB,CACjC,UAAU,EAAE,cAAc,EAC1B,UAAU,EAAE,cAAc,GACzB,cAAc,CAqBhB;AAED,wBAAgB,wBAAwB,CACtC,UAAU,EAAE,cAAc,EAC1B,MAAM,EAAE,MAAM,EACd,UAAU,CAAC,EAAE,CAAC,OAAO,EAAE,MAAM,KAAK,OAAO,GACxC,cAAc,CAyBhB"}
@@ -9,6 +9,7 @@ const BUILT_IN_POLICY_PACK_FILE_NAMES = {
9
9
  '@veto/data-access': 'data-access.yaml',
10
10
  '@veto/communication': 'communication.yaml',
11
11
  '@veto/deployment': 'deployment.yaml',
12
+ '@veto/economic-agent': 'economic-agent.yaml',
12
13
  };
13
14
  const MODULE_DIR = dirname(fileURLToPath(import.meta.url));
14
15
  const PACKS_DIR = resolve(MODULE_DIR, '..', '..', 'packs');
@@ -1 +1 @@
1
- {"version":3,"file":"policy-packs.js","sourceRoot":"","sources":["../../src/rules/policy-packs.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"policy-packs.js","sourceRoot":"","sources":["../../src/rules/policy-packs.ts"],"names":[],"mappings":"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"}
@@ -9,7 +9,7 @@
9
9
  /**
10
10
  * Condition operators for rule matching.
11
11
  */
12
- export type ConditionOperator = 'equals' | 'not_equals' | 'contains' | 'not_contains' | 'starts_with' | 'ends_with' | 'matches' | 'greater_than' | 'less_than' | 'length_greater_than' | 'in' | 'not_in' | 'outside_hours' | 'within_hours';
12
+ export type ConditionOperator = 'equals' | 'not_equals' | 'contains' | 'not_contains' | 'starts_with' | 'ends_with' | 'matches' | 'greater_than' | 'less_than' | 'percent_of' | 'length_greater_than' | 'in' | 'not_in' | 'outside_hours' | 'within_hours';
13
13
  /**
14
14
  * Supported day abbreviations for time-based conditions.
15
15
  */
@@ -43,6 +43,8 @@ export interface RuleCondition {
43
43
  operator?: ConditionOperator;
44
44
  /** The value to compare against */
45
45
  value?: unknown;
46
+ /** Reference field used by dynamic operators such as `percent_of` */
47
+ reference?: string;
46
48
  /** AST-compiled policy expression (takes precedence over field/operator/value) */
47
49
  expression?: string;
48
50
  }