veto-sdk 1.12.0 → 1.13.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/README.md +72 -5
- package/dist/cli/bin.js +91 -7
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/diff.d.ts +120 -0
- package/dist/cli/diff.d.ts.map +1 -0
- package/dist/cli/diff.js +950 -0
- package/dist/cli/diff.js.map +1 -0
- package/dist/cli/index.d.ts +5 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +5 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/repl-context.d.ts +34 -0
- package/dist/cli/repl-context.d.ts.map +1 -0
- package/dist/cli/repl-context.js +366 -0
- package/dist/cli/repl-context.js.map +1 -0
- package/dist/cli/repl-generate.d.ts +84 -0
- package/dist/cli/repl-generate.d.ts.map +1 -0
- package/dist/cli/repl-generate.js +907 -0
- package/dist/cli/repl-generate.js.map +1 -0
- package/dist/cli/repl.d.ts +39 -0
- package/dist/cli/repl.d.ts.map +1 -0
- package/dist/cli/repl.js +1060 -0
- package/dist/cli/repl.js.map +1 -0
- package/dist/cli/scan.d.ts +60 -0
- package/dist/cli/scan.d.ts.map +1 -0
- package/dist/cli/scan.js +644 -0
- package/dist/cli/scan.js.map +1 -0
- package/dist/core/protect.d.ts.map +1 -1
- package/dist/core/protect.js +2 -118
- package/dist/core/protect.js.map +1 -1
- package/dist/core/tool-pack-heuristics.d.ts +3 -0
- package/dist/core/tool-pack-heuristics.d.ts.map +1 -0
- package/dist/core/tool-pack-heuristics.js +124 -0
- package/dist/core/tool-pack-heuristics.js.map +1 -0
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -108,7 +108,6 @@ logging:
|
|
|
108
108
|
rules:
|
|
109
109
|
directory: "./rules"
|
|
110
110
|
recursive: true
|
|
111
|
-
|
|
112
111
|
# Local approval callback (for action: require_approval)
|
|
113
112
|
# approval:
|
|
114
113
|
# callbackUrl: "http://localhost:8787/approvals"
|
|
@@ -176,10 +175,78 @@ const csvAudit = veto.exportDecisions("csv");
|
|
|
176
175
|
|
|
177
176
|
## CLI Commands
|
|
178
177
|
|
|
179
|
-
| Command | Description
|
|
180
|
-
| ------------------ |
|
|
181
|
-
| `npx veto
|
|
182
|
-
| `npx veto
|
|
178
|
+
| Command | Description |
|
|
179
|
+
| ------------------ | ----------------------------------------------------- |
|
|
180
|
+
| `npx veto` | Start interactive policy REPL |
|
|
181
|
+
| `npx veto --repl` | Start interactive policy REPL (explicit flag) |
|
|
182
|
+
| `npx veto repl` | Start interactive policy REPL |
|
|
183
|
+
| `npx veto init` | Initialize Veto in current directory |
|
|
184
|
+
| `npx veto learn` | Observe tool calls and generate starter policies |
|
|
185
|
+
| `npx veto compile` | Compile natural-language policy text into YAML |
|
|
186
|
+
| `npx veto test` | Run adversarial policy gap analysis |
|
|
187
|
+
| `npx veto scan` | Audit discovered tools vs loaded rule coverage |
|
|
188
|
+
| `npx veto diff` | Diff policy snapshots and replay deterministic impact |
|
|
189
|
+
| `npx veto version` | Show version |
|
|
190
|
+
|
|
191
|
+
Interactive REPL examples:
|
|
192
|
+
|
|
193
|
+
```bash
|
|
194
|
+
# Start interactive policy shell
|
|
195
|
+
npx veto
|
|
196
|
+
|
|
197
|
+
# Start interactive policy shell (explicit flag)
|
|
198
|
+
npx veto --repl
|
|
199
|
+
|
|
200
|
+
# Test a call locally (no network)
|
|
201
|
+
/test transfer_funds({"amount": 50000})
|
|
202
|
+
|
|
203
|
+
# Ask a what-if question in plain language
|
|
204
|
+
what would happen if my agent tried to transfer $50,000?
|
|
205
|
+
|
|
206
|
+
# Explain a rule
|
|
207
|
+
/explain fin-block-high-transfers
|
|
208
|
+
|
|
209
|
+
# Run scenario suite
|
|
210
|
+
test my agent against current rules
|
|
211
|
+
|
|
212
|
+
# Export merged rules
|
|
213
|
+
/export
|
|
214
|
+
|
|
215
|
+
# Save generated YAML to a custom file during prompt flow
|
|
216
|
+
# Save to ./veto/rules/transfer-funds-block-25000.yaml? [Y/n/edit/path]
|
|
217
|
+
```
|
|
218
|
+
|
|
219
|
+
Coverage audit examples:
|
|
220
|
+
|
|
221
|
+
```bash
|
|
222
|
+
# Human-readable coverage report
|
|
223
|
+
npx veto scan
|
|
224
|
+
|
|
225
|
+
# CI gate: fail when uncovered tools are found
|
|
226
|
+
npx veto scan --fail-uncovered
|
|
227
|
+
|
|
228
|
+
# Include inline YAML snippets for uncovered tools
|
|
229
|
+
npx veto scan --suggest
|
|
230
|
+
|
|
231
|
+
# Machine-readable output for CI pipelines
|
|
232
|
+
npx veto scan --format json
|
|
233
|
+
```
|
|
234
|
+
|
|
235
|
+
Policy diff examples:
|
|
236
|
+
|
|
237
|
+
```bash
|
|
238
|
+
# Compare working rule file against HEAD (git snapshot)
|
|
239
|
+
npx veto diff financial.yaml
|
|
240
|
+
|
|
241
|
+
# Compare two explicit snapshots (file or directory mode)
|
|
242
|
+
npx veto diff --old ./rules-v1 --new ./rules-v2
|
|
243
|
+
|
|
244
|
+
# Include deterministic replay impact from historical calls
|
|
245
|
+
npx veto diff financial.yaml --log calls.jsonl
|
|
246
|
+
|
|
247
|
+
# Machine-readable structural + impact report
|
|
248
|
+
npx veto diff --old ./rules-v1 --new ./rules-v2 --log calls.jsonl --format json
|
|
249
|
+
```
|
|
183
250
|
|
|
184
251
|
## General Rule YAML Format
|
|
185
252
|
|
package/dist/cli/bin.js
CHANGED
|
@@ -3,6 +3,9 @@ import { init } from './init.js';
|
|
|
3
3
|
import { Observer, PolicyGenerator, parseDuration, policiesToYaml } from './learn.js';
|
|
4
4
|
import { compile } from './compile.js';
|
|
5
5
|
import { test } from './test.js';
|
|
6
|
+
import { scan } from './scan.js';
|
|
7
|
+
import { diff } from './diff.js';
|
|
8
|
+
import { startRepl } from './repl.js';
|
|
6
9
|
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
7
10
|
import { dirname, resolve } from 'node:path';
|
|
8
11
|
const VERSION = '0.1.0';
|
|
@@ -12,22 +15,41 @@ function printHelp() {
|
|
|
12
15
|
Veto - AI Agent Tool Call Guardrail
|
|
13
16
|
|
|
14
17
|
Usage:
|
|
15
|
-
veto
|
|
18
|
+
veto [command] [options]
|
|
16
19
|
|
|
17
20
|
Commands:
|
|
21
|
+
repl Start interactive policy shell
|
|
18
22
|
init Initialize Veto in the current directory
|
|
19
23
|
learn Observe tool calls and generate policies
|
|
20
24
|
compile Compile natural language policies to deterministic YAML rules
|
|
21
25
|
test Run adversarial policy gap analysis
|
|
26
|
+
scan Audit tool coverage against loaded rules
|
|
27
|
+
diff Compare policy snapshots and optional log impact replay
|
|
22
28
|
version Show version information
|
|
23
29
|
help Show this help message
|
|
24
30
|
|
|
31
|
+
No command:
|
|
32
|
+
Starts the interactive policy REPL
|
|
33
|
+
|
|
25
34
|
Options:
|
|
35
|
+
--repl Force interactive REPL mode
|
|
26
36
|
--force, -f Force overwrite existing files (init)
|
|
27
37
|
--pack <name> Scaffold with a built-in policy pack (init)
|
|
28
38
|
--quiet, -q Suppress output
|
|
29
39
|
--help, -h Show help
|
|
30
40
|
|
|
41
|
+
REPL Slash Commands:
|
|
42
|
+
/scan Rescan tools and pack suggestions
|
|
43
|
+
/test <tool>({args}) Local-only policy evaluation (no network)
|
|
44
|
+
/test-suite Run generated scenarios against current rules
|
|
45
|
+
/explain <ruleId> Explain a rule in plain language
|
|
46
|
+
/list Show loaded session rules
|
|
47
|
+
/load <file> Merge a YAML rule file into session
|
|
48
|
+
/export [file] Export merged session rules
|
|
49
|
+
/clear Reload baseline rules, drop session additions
|
|
50
|
+
/quit Exit REPL
|
|
51
|
+
Aliases: /q /? /s /t /ts /e /ls /x /c
|
|
52
|
+
|
|
31
53
|
Learn Options:
|
|
32
54
|
--runs <n> Stop after n tool calls
|
|
33
55
|
--duration <time> Stop after duration (e.g., 30s, 10m, 1h)
|
|
@@ -46,8 +68,23 @@ Test Options:
|
|
|
46
68
|
--output <file> Write JSON report to file
|
|
47
69
|
--format <fmt> Output format: text or json (default: text)
|
|
48
70
|
|
|
71
|
+
Scan Options:
|
|
72
|
+
--fail-uncovered Exit with code 1 when uncovered tools are found
|
|
73
|
+
--suggest Include inline YAML starter snippets for uncovered tools
|
|
74
|
+
--format <fmt> Output format: text or json (default: text)
|
|
75
|
+
|
|
76
|
+
Diff Options:
|
|
77
|
+
<policy-path> Compare working file with HEAD snapshot (git mode)
|
|
78
|
+
--old <path> Explicit old policy file or directory
|
|
79
|
+
--new <path> Explicit new policy file or directory
|
|
80
|
+
--log <path> JSONL tool-call log for deterministic impact replay
|
|
81
|
+
--format <fmt> Output format: text or json (default: text)
|
|
82
|
+
|
|
49
83
|
Examples:
|
|
50
84
|
veto init Initialize Veto in current directory
|
|
85
|
+
veto Start interactive REPL
|
|
86
|
+
veto --repl Start interactive REPL (explicit flag)
|
|
87
|
+
veto repl Start interactive REPL
|
|
51
88
|
veto init --pack coding-agent Initialize with extends: "@veto/coding-agent"
|
|
52
89
|
veto init --force Reinitialize, overwriting existing files
|
|
53
90
|
veto learn --runs 10 Observe 10 tool calls then generate policies
|
|
@@ -57,6 +94,12 @@ Examples:
|
|
|
57
94
|
veto test Analyze policies for gaps
|
|
58
95
|
veto test --policy ./rules Analyze specific policy directory
|
|
59
96
|
veto test --output report.json Save JSON report
|
|
97
|
+
veto scan Audit tool coverage in current project
|
|
98
|
+
veto scan --suggest Show inline YAML snippets for uncovered tools
|
|
99
|
+
veto scan --fail-uncovered Fail CI when uncovered tools are detected
|
|
100
|
+
veto diff financial.yaml Compare veto/rules/financial.yaml vs HEAD
|
|
101
|
+
veto diff --old v1 --new v2 Compare two policy directories
|
|
102
|
+
veto diff financial.yaml --log calls.jsonl
|
|
60
103
|
`);
|
|
61
104
|
}
|
|
62
105
|
function printVersion() {
|
|
@@ -65,11 +108,13 @@ function printVersion() {
|
|
|
65
108
|
function parseArgs(args) {
|
|
66
109
|
const flags = {};
|
|
67
110
|
const values = {};
|
|
111
|
+
const positionals = [];
|
|
68
112
|
let command = '';
|
|
69
113
|
const valueFlags = new Set([
|
|
70
114
|
'runs', 'duration', 'output', 'margin',
|
|
71
115
|
'input', 'file', 'provider', 'model',
|
|
72
116
|
'policy', 'format', 'pack',
|
|
117
|
+
'old', 'new', 'log',
|
|
73
118
|
]);
|
|
74
119
|
for (let i = 0; i < args.length; i++) {
|
|
75
120
|
const arg = args[i];
|
|
@@ -101,8 +146,11 @@ function parseArgs(args) {
|
|
|
101
146
|
else if (!command) {
|
|
102
147
|
command = arg;
|
|
103
148
|
}
|
|
149
|
+
else {
|
|
150
|
+
positionals.push(arg);
|
|
151
|
+
}
|
|
104
152
|
}
|
|
105
|
-
return { command, flags, values };
|
|
153
|
+
return { command, positionals, flags, values };
|
|
106
154
|
}
|
|
107
155
|
async function runLearn(flags, values) {
|
|
108
156
|
const quiet = flags['quiet'] ?? false;
|
|
@@ -198,7 +246,7 @@ async function runLearn(flags, values) {
|
|
|
198
246
|
}
|
|
199
247
|
async function main() {
|
|
200
248
|
const args = process.argv.slice(2);
|
|
201
|
-
const { command, flags, values } = parseArgs(args);
|
|
249
|
+
const { command, positionals, flags, values } = parseArgs(args);
|
|
202
250
|
if (flags['help'] || command === 'help') {
|
|
203
251
|
printHelp();
|
|
204
252
|
process.exit(0);
|
|
@@ -207,7 +255,20 @@ async function main() {
|
|
|
207
255
|
printVersion();
|
|
208
256
|
process.exit(0);
|
|
209
257
|
}
|
|
258
|
+
if (flags['repl']) {
|
|
259
|
+
if (command && command !== '') {
|
|
260
|
+
console.error('Error: --repl cannot be combined with another command');
|
|
261
|
+
process.exit(1);
|
|
262
|
+
}
|
|
263
|
+
await startRepl({ version: VERSION });
|
|
264
|
+
process.exit(0);
|
|
265
|
+
}
|
|
210
266
|
switch (command) {
|
|
267
|
+
case 'repl': {
|
|
268
|
+
await startRepl({ version: VERSION });
|
|
269
|
+
process.exit(0);
|
|
270
|
+
break;
|
|
271
|
+
}
|
|
211
272
|
case 'init': {
|
|
212
273
|
const result = await init({
|
|
213
274
|
force: flags['force'],
|
|
@@ -252,11 +313,34 @@ async function main() {
|
|
|
252
313
|
process.exit(testResult.success ? 0 : 1);
|
|
253
314
|
break;
|
|
254
315
|
}
|
|
316
|
+
case 'scan': {
|
|
317
|
+
const scanResult = await scan({
|
|
318
|
+
quiet: flags['quiet'],
|
|
319
|
+
failUncovered: flags['fail-uncovered'],
|
|
320
|
+
suggest: flags['suggest'],
|
|
321
|
+
format: values['format'] ?? undefined,
|
|
322
|
+
});
|
|
323
|
+
process.exit(scanResult.success ? 0 : 1);
|
|
324
|
+
break;
|
|
325
|
+
}
|
|
326
|
+
case 'diff': {
|
|
327
|
+
if (positionals.length > 1) {
|
|
328
|
+
console.error('Error: diff command accepts at most one <policy-path> positional argument');
|
|
329
|
+
process.exit(1);
|
|
330
|
+
}
|
|
331
|
+
const diffResult = await diff({
|
|
332
|
+
quiet: flags['quiet'],
|
|
333
|
+
policyPath: positionals[0],
|
|
334
|
+
old: values['old'],
|
|
335
|
+
new: values['new'],
|
|
336
|
+
log: values['log'],
|
|
337
|
+
format: values['format'] ?? undefined,
|
|
338
|
+
});
|
|
339
|
+
process.exit(diffResult.success ? 0 : 1);
|
|
340
|
+
break;
|
|
341
|
+
}
|
|
255
342
|
case '': {
|
|
256
|
-
|
|
257
|
-
console.log('');
|
|
258
|
-
console.log('Run "veto help" for usage information.');
|
|
259
|
-
console.log('Run "veto init" to initialize Veto in your project.');
|
|
343
|
+
await startRepl({ version: VERSION });
|
|
260
344
|
process.exit(0);
|
|
261
345
|
break;
|
|
262
346
|
}
|
package/dist/cli/bin.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"bin.js","sourceRoot":"","sources":["../../src/cli/bin.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,120 @@
|
|
|
1
|
+
import type { Rule } from '../rules/types.js';
|
|
2
|
+
type ReportFormat = 'text' | 'json';
|
|
3
|
+
type RuleDecision = 'allow' | 'deny' | 'require_approval';
|
|
4
|
+
type ComparableRuleField = 'action' | 'enabled' | 'severity' | 'tools' | 'conditions' | 'condition_groups' | 'blocked_by' | 'requires' | 'description' | 'name';
|
|
5
|
+
interface DiffSources {
|
|
6
|
+
mode: 'implicit-git-file' | 'explicit-file' | 'explicit-directory';
|
|
7
|
+
old: string;
|
|
8
|
+
new: string;
|
|
9
|
+
log?: string;
|
|
10
|
+
}
|
|
11
|
+
interface ScopeChanges {
|
|
12
|
+
scope: string;
|
|
13
|
+
added: RuleChange[];
|
|
14
|
+
removed: RuleChange[];
|
|
15
|
+
modified: RuleChange[];
|
|
16
|
+
}
|
|
17
|
+
interface RuleFieldChange {
|
|
18
|
+
field: ComparableRuleField;
|
|
19
|
+
oldValue: unknown;
|
|
20
|
+
newValue: unknown;
|
|
21
|
+
}
|
|
22
|
+
interface DecisionCounts {
|
|
23
|
+
allow: number;
|
|
24
|
+
deny: number;
|
|
25
|
+
require_approval: number;
|
|
26
|
+
}
|
|
27
|
+
export interface DiffOptions {
|
|
28
|
+
directory?: string;
|
|
29
|
+
quiet?: boolean;
|
|
30
|
+
old?: string;
|
|
31
|
+
new?: string;
|
|
32
|
+
log?: string;
|
|
33
|
+
format?: ReportFormat;
|
|
34
|
+
policyPath?: string;
|
|
35
|
+
}
|
|
36
|
+
export interface RuleChange {
|
|
37
|
+
kind: 'added' | 'removed' | 'modified';
|
|
38
|
+
ruleId: string;
|
|
39
|
+
scopes: string[];
|
|
40
|
+
summary: string;
|
|
41
|
+
fieldChanges: RuleFieldChange[];
|
|
42
|
+
oldRule?: Rule;
|
|
43
|
+
newRule?: Rule;
|
|
44
|
+
}
|
|
45
|
+
export interface StructuralDiff {
|
|
46
|
+
addedRuleIds: string[];
|
|
47
|
+
removedRuleIds: string[];
|
|
48
|
+
modifiedRuleIds: string[];
|
|
49
|
+
ruleChanges: RuleChange[];
|
|
50
|
+
changesByScope: ScopeChanges[];
|
|
51
|
+
unchangedTools: string[];
|
|
52
|
+
}
|
|
53
|
+
export interface ReplayCall {
|
|
54
|
+
index: number;
|
|
55
|
+
line: number;
|
|
56
|
+
tool: string;
|
|
57
|
+
arguments: Record<string, unknown>;
|
|
58
|
+
timestamp: string;
|
|
59
|
+
sessionId?: string;
|
|
60
|
+
agentId?: string;
|
|
61
|
+
userId?: string;
|
|
62
|
+
role?: string;
|
|
63
|
+
custom?: Record<string, unknown>;
|
|
64
|
+
}
|
|
65
|
+
export interface ReplayDecision {
|
|
66
|
+
decision: RuleDecision;
|
|
67
|
+
ruleId?: string;
|
|
68
|
+
ruleName?: string;
|
|
69
|
+
reason?: string;
|
|
70
|
+
}
|
|
71
|
+
export interface ImpactReport {
|
|
72
|
+
logPath: string;
|
|
73
|
+
totalLines: number;
|
|
74
|
+
validCalls: number;
|
|
75
|
+
invalidLines: number;
|
|
76
|
+
invalidLineNumbers: number[];
|
|
77
|
+
oldDecisionCounts: DecisionCounts;
|
|
78
|
+
newDecisionCounts: DecisionCounts;
|
|
79
|
+
transitions: Record<string, number>;
|
|
80
|
+
changedCalls: number;
|
|
81
|
+
additionalDenied: number;
|
|
82
|
+
additionalRequireApproval: number;
|
|
83
|
+
changedByTool: Array<{
|
|
84
|
+
tool: string;
|
|
85
|
+
count: number;
|
|
86
|
+
}>;
|
|
87
|
+
samples: Array<{
|
|
88
|
+
index: number;
|
|
89
|
+
line: number;
|
|
90
|
+
tool: string;
|
|
91
|
+
timestamp: string;
|
|
92
|
+
oldDecision: ReplayDecision;
|
|
93
|
+
newDecision: ReplayDecision;
|
|
94
|
+
}>;
|
|
95
|
+
}
|
|
96
|
+
export interface DiffReport {
|
|
97
|
+
timestamp: string;
|
|
98
|
+
projectDir: string;
|
|
99
|
+
sources: DiffSources;
|
|
100
|
+
structural: StructuralDiff;
|
|
101
|
+
impact: ImpactReport | null;
|
|
102
|
+
summary: {
|
|
103
|
+
oldRules: number;
|
|
104
|
+
newRules: number;
|
|
105
|
+
added: number;
|
|
106
|
+
removed: number;
|
|
107
|
+
modified: number;
|
|
108
|
+
changedScopes: number;
|
|
109
|
+
unchangedTools: number;
|
|
110
|
+
hasChanges: boolean;
|
|
111
|
+
};
|
|
112
|
+
}
|
|
113
|
+
export interface DiffResult {
|
|
114
|
+
success: boolean;
|
|
115
|
+
report: DiffReport | null;
|
|
116
|
+
errors: string[];
|
|
117
|
+
}
|
|
118
|
+
export declare function diff(options?: DiffOptions): Promise<DiffResult>;
|
|
119
|
+
export {};
|
|
120
|
+
//# sourceMappingURL=diff.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"diff.d.ts","sourceRoot":"","sources":["../../src/cli/diff.ts"],"names":[],"mappings":"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"}
|