veto-sdk 1.15.1 → 1.16.1
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 +34 -21
- package/dist/cli/bin.js +2 -506
- package/dist/cli/bin.js.map +1 -1
- package/dist/cli/headless.d.ts +110 -0
- package/dist/cli/headless.d.ts.map +1 -0
- package/dist/cli/headless.js +665 -0
- package/dist/cli/headless.js.map +1 -0
- package/dist/cli/index.d.ts +2 -0
- package/dist/cli/index.d.ts.map +1 -1
- package/dist/cli/index.js +2 -0
- package/dist/cli/index.js.map +1 -1
- package/dist/cli/repl-generate.d.ts.map +1 -1
- package/dist/cli/repl-generate.js +40 -2
- package/dist/cli/repl-generate.js.map +1 -1
- package/dist/cli/runner.d.ts +3 -0
- package/dist/cli/runner.d.ts.map +1 -0
- package/dist/cli/runner.js +629 -0
- package/dist/cli/runner.js.map +1 -0
- package/dist/cli/studio/actions.d.ts.map +1 -1
- package/dist/cli/studio/actions.js +1 -0
- package/dist/cli/studio/actions.js.map +1 -1
- package/dist/cli/studio/renderers/ink.d.ts +19 -0
- package/dist/cli/studio/renderers/ink.d.ts.map +1 -0
- package/dist/cli/studio/renderers/ink.js +202 -0
- package/dist/cli/studio/renderers/ink.js.map +1 -0
- package/dist/cli/studio/start.d.ts +2 -1
- package/dist/cli/studio/start.d.ts.map +1 -1
- package/dist/cli/studio/start.js +42 -11
- package/dist/cli/studio/start.js.map +1 -1
- package/dist/cli/studio/state.d.ts +6 -2
- package/dist/cli/studio/state.d.ts.map +1 -1
- package/dist/cli/studio/state.js +1 -0
- package/dist/cli/studio/state.js.map +1 -1
- package/dist/cli/templates.d.ts +1 -1
- package/dist/cli/templates.d.ts.map +1 -1
- package/dist/cli/templates.js +1 -1
- package/dist/cli/version.d.ts.map +1 -1
- package/dist/cli/version.js +6 -2
- package/dist/cli/version.js.map +1 -1
- package/package.json +8 -1
package/README.md
CHANGED
|
@@ -175,46 +175,59 @@ const csvAudit = veto.exportDecisions("csv");
|
|
|
175
175
|
|
|
176
176
|
## CLI Commands
|
|
177
177
|
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
|
|
|
178
|
+
Canonical package:
|
|
179
|
+
|
|
180
|
+
```bash
|
|
181
|
+
npx veto-cli@latest
|
|
182
|
+
```
|
|
183
|
+
|
|
184
|
+
Compatibility package (still supported):
|
|
185
|
+
|
|
186
|
+
```bash
|
|
187
|
+
npx veto-sdk@latest
|
|
188
|
+
```
|
|
189
|
+
|
|
190
|
+
| Command | Description |
|
|
191
|
+
| ------------------------------------------------------------------------------------- | ----------------------------------------------- |
|
|
192
|
+
| `veto` | Start Veto Studio (default interactive mode) |
|
|
193
|
+
| `veto studio` | Start Veto Studio explicitly |
|
|
194
|
+
| `veto repl --legacy` | Start legacy line-based REPL |
|
|
195
|
+
| `veto policy generate --tool <name> --prompt <text> [--target local\|cloud] [--json]` | Generate policy YAML (interactive-independent) |
|
|
196
|
+
| `veto policy apply --file <path> [--target local\|cloud] [--json]` | Apply policy file locally or create cloud draft |
|
|
197
|
+
| `veto guard check --tool <name> --args <json> [--mode ...] [--json]` | Run a deterministic guard check for a tool call |
|
|
198
|
+
| `veto cloud login` | Start cloud device login |
|
|
199
|
+
| `veto cloud whoami` | Show cloud CLI context |
|
|
200
|
+
| `veto doctor` | Runtime/auth/connectivity diagnostics |
|
|
201
|
+
| `veto init`, `veto learn`, `veto compile`, `veto test`, `veto scan`, `veto diff` | Existing core workflows |
|
|
202
|
+
| `veto version` | Show version |
|
|
191
203
|
|
|
192
204
|
Migration notes:
|
|
193
205
|
|
|
194
|
-
- Legacy REPL is still available via `
|
|
206
|
+
- Legacy REPL is still available via `veto repl --legacy`.
|
|
207
|
+
- `veto-cli` is the canonical package. `veto-sdk` CLI path remains compatibility-first.
|
|
195
208
|
- Studio template fallback is opt-in (`--demo-template` or `studio.generation.allowTemplateFallback: true`).
|
|
196
|
-
-
|
|
209
|
+
- Studio defaults to Ink on Node.js. OpenTUI remains optional (`--renderer opentui`) for Bun runtimes.
|
|
197
210
|
|
|
198
211
|
Veto Studio examples:
|
|
199
212
|
|
|
200
213
|
```bash
|
|
201
214
|
# Start full-screen Veto Studio
|
|
202
|
-
npx veto
|
|
215
|
+
npx veto-cli@latest
|
|
203
216
|
|
|
204
217
|
# Start Studio with explicit flag
|
|
205
|
-
npx veto
|
|
218
|
+
npx veto-cli@latest studio
|
|
206
219
|
|
|
207
220
|
# Force ANSI renderer
|
|
208
|
-
npx veto
|
|
221
|
+
npx veto-cli@latest studio --renderer ansi
|
|
209
222
|
|
|
210
223
|
# Open a specific workspace from multi-repo root
|
|
211
|
-
npx veto
|
|
224
|
+
npx veto-cli@latest studio --directory ./packages/sdk
|
|
212
225
|
|
|
213
226
|
# Enable explicit template demo mode (otherwise no silent fallback in Studio)
|
|
214
|
-
npx veto
|
|
227
|
+
npx veto-cli@latest studio --demo-template
|
|
215
228
|
|
|
216
229
|
# Legacy line-based REPL remains available
|
|
217
|
-
npx veto repl --legacy
|
|
230
|
+
npx veto-cli@latest repl --legacy
|
|
218
231
|
```
|
|
219
232
|
|
|
220
233
|
Legacy REPL slash-command examples:
|
package/dist/cli/bin.js
CHANGED
|
@@ -1,508 +1,4 @@
|
|
|
1
1
|
#!/usr/bin/env node
|
|
2
|
-
import {
|
|
3
|
-
|
|
4
|
-
import { compile } from './compile.js';
|
|
5
|
-
import { test } from './test.js';
|
|
6
|
-
import { scan } from './scan.js';
|
|
7
|
-
import { diff } from './diff.js';
|
|
8
|
-
import { startRepl } from './repl.js';
|
|
9
|
-
import { startStudio } from './studio/start.js';
|
|
10
|
-
import { agentInit, agentPolicyList, agentPolicyAdd, agentScan, agentConfig } from './agent.js';
|
|
11
|
-
import { getCliVersion } from './version.js';
|
|
12
|
-
import { mkdirSync, writeFileSync } from 'node:fs';
|
|
13
|
-
import { dirname, resolve } from 'node:path';
|
|
14
|
-
const VERSION = getCliVersion();
|
|
15
|
-
const VALID_PROVIDERS = new Set(['openai', 'anthropic', 'gemini', 'openrouter']);
|
|
16
|
-
function printHelp() {
|
|
17
|
-
console.log(`
|
|
18
|
-
Veto - AI Agent Tool Call Guardrail
|
|
19
|
-
|
|
20
|
-
Usage:
|
|
21
|
-
veto [command] [options]
|
|
22
|
-
|
|
23
|
-
Commands:
|
|
24
|
-
repl Start Veto Studio (full-screen TUI)
|
|
25
|
-
init Initialize Veto in the current directory
|
|
26
|
-
agent Agent-native commands (policy add, list, scan, config)
|
|
27
|
-
learn Observe tool calls and generate policies
|
|
28
|
-
compile Compile natural language policies to deterministic YAML rules
|
|
29
|
-
test Run adversarial policy gap analysis
|
|
30
|
-
scan Audit tool coverage against loaded rules
|
|
31
|
-
diff Compare policy snapshots and optional log impact replay
|
|
32
|
-
version Show version information
|
|
33
|
-
help Show this help message
|
|
34
|
-
|
|
35
|
-
Agent Commands:
|
|
36
|
-
agent init Initialize Veto in agent mode (no prompts)
|
|
37
|
-
agent policy add "..." Add a policy from natural language
|
|
38
|
-
agent policy list List all policies in the project
|
|
39
|
-
agent scan Scan tools and show coverage
|
|
40
|
-
agent config Show current Veto configuration
|
|
41
|
-
|
|
42
|
-
No command:
|
|
43
|
-
Starts Veto Studio (same as "veto repl")
|
|
44
|
-
|
|
45
|
-
Options:
|
|
46
|
-
--repl Force Studio mode (same as "veto repl")
|
|
47
|
-
--legacy Use legacy line-based REPL instead of Studio
|
|
48
|
-
--directory <path> Set workspace directory for Studio/scan
|
|
49
|
-
--renderer <mode> Renderer: auto, opentui, ansi (Studio)
|
|
50
|
-
--include-examples Include examples/** when scanning workspace
|
|
51
|
-
--include-tests Include test/**, tests/**, __tests__/** when scanning
|
|
52
|
-
--demo-template Allow template-only generation when endpoints are unavailable
|
|
53
|
-
--force, -f Force overwrite existing files (init)
|
|
54
|
-
--pack <name> Scaffold with a built-in policy pack (init)
|
|
55
|
-
--mode <mode> Validation mode: local, cloud, kernel, custom (init)
|
|
56
|
-
--approval Enable human approval webhook (init)
|
|
57
|
-
--agent Agent mode - no interactive prompts (init)
|
|
58
|
-
--yes, -y Skip confirmation prompts (init)
|
|
59
|
-
--quiet, -q Suppress output
|
|
60
|
-
--help, -h Show help
|
|
61
|
-
|
|
62
|
-
REPL Slash Commands:
|
|
63
|
-
/scan Rescan tools and pack suggestions
|
|
64
|
-
/test <tool>({args}) Local-only policy evaluation (no network)
|
|
65
|
-
/test-suite Run generated scenarios against current rules
|
|
66
|
-
/explain <ruleId> Explain a rule in plain language
|
|
67
|
-
/list Show loaded session rules
|
|
68
|
-
/load <file> Merge a YAML rule file into session
|
|
69
|
-
/export [file] Export merged session rules
|
|
70
|
-
/clear Reload baseline rules, drop session additions
|
|
71
|
-
/quit Exit REPL
|
|
72
|
-
Aliases: /q /? /s /t /ts /e /ls /x /c
|
|
73
|
-
|
|
74
|
-
Learn Options:
|
|
75
|
-
--runs <n> Stop after n tool calls
|
|
76
|
-
--duration <time> Stop after duration (e.g., 30s, 10m, 1h)
|
|
77
|
-
--output <path> Output YAML file path (default: ./veto/rules/learned.yaml)
|
|
78
|
-
--margin <n> Numeric range margin as decimal (default: 0.1)
|
|
79
|
-
|
|
80
|
-
Compile Options:
|
|
81
|
-
--input <text> Policy description as inline text
|
|
82
|
-
--file <path> Path to a text file containing policy descriptions
|
|
83
|
-
--output <path> Output file (.yaml) or directory for generated rules
|
|
84
|
-
--provider <name> LLM provider: openai, anthropic, gemini, openrouter
|
|
85
|
-
--model <name> Model identifier (e.g. gpt-4o, claude-sonnet-4-5-20250929)
|
|
86
|
-
|
|
87
|
-
Test Options:
|
|
88
|
-
--policy <path> Policy directory (default: ./veto/rules/)
|
|
89
|
-
--output <file> Write JSON report to file
|
|
90
|
-
--format <fmt> Output format: text or json (default: text)
|
|
91
|
-
|
|
92
|
-
Scan Options:
|
|
93
|
-
--directory <path> Project directory to scan
|
|
94
|
-
--include-examples Include examples/** in discovery scope
|
|
95
|
-
--include-tests Include test directories in discovery scope
|
|
96
|
-
--fail-uncovered Exit with code 1 when uncovered tools are found
|
|
97
|
-
--suggest Include inline YAML starter snippets for uncovered tools
|
|
98
|
-
--format <fmt> Output format: text or json (default: text)
|
|
99
|
-
|
|
100
|
-
Diff Options:
|
|
101
|
-
<policy-path> Compare working file with HEAD snapshot (git mode)
|
|
102
|
-
--old <path> Explicit old policy file or directory
|
|
103
|
-
--new <path> Explicit new policy file or directory
|
|
104
|
-
--log <path> JSONL tool-call log for deterministic impact replay
|
|
105
|
-
--format <fmt> Output format: text or json (default: text)
|
|
106
|
-
|
|
107
|
-
Examples:
|
|
108
|
-
veto init Initialize Veto in current directory (interactive wizard)
|
|
109
|
-
veto init --agent Initialize in agent mode (no prompts)
|
|
110
|
-
veto init --agent --pack @veto/financial --mode local
|
|
111
|
-
veto Start Veto Studio
|
|
112
|
-
veto --repl Start Veto Studio (explicit flag)
|
|
113
|
-
veto repl Start Veto Studio
|
|
114
|
-
veto repl --legacy Start legacy line-based REPL
|
|
115
|
-
veto repl --renderer ansi Force ANSI renderer
|
|
116
|
-
veto repl --directory ./packages/sdk
|
|
117
|
-
veto repl --demo-template Enable explicit template demo mode
|
|
118
|
-
veto init --pack coding-agent Initialize with extends: "@veto/coding-agent"
|
|
119
|
-
veto init --mode cloud --approval Initialize with cloud mode + human approval
|
|
120
|
-
veto init --force Reinitialize, overwriting existing files
|
|
121
|
-
veto learn --runs 10 Observe 10 tool calls then generate policies
|
|
122
|
-
veto learn --duration 30m Observe for 30 minutes
|
|
123
|
-
veto compile --input 'Block emails outside company domain' --output ./veto/rules/email.yaml
|
|
124
|
-
veto compile --file policies.txt --output ./veto/rules/
|
|
125
|
-
veto test Analyze policies for gaps
|
|
126
|
-
veto test --policy ./rules Analyze specific policy directory
|
|
127
|
-
veto test --output report.json Save JSON report
|
|
128
|
-
veto scan Audit tool coverage in current project
|
|
129
|
-
veto scan --directory ./packages/sdk
|
|
130
|
-
veto scan --suggest Show inline YAML snippets for uncovered tools
|
|
131
|
-
veto scan --fail-uncovered Fail CI when uncovered tools are detected
|
|
132
|
-
veto diff financial.yaml Compare veto/rules/financial.yaml vs HEAD
|
|
133
|
-
veto diff --old v1 --new v2 Compare two policy directories
|
|
134
|
-
veto diff financial.yaml --log calls.jsonl
|
|
135
|
-
`);
|
|
136
|
-
}
|
|
137
|
-
function printVersion() {
|
|
138
|
-
console.log(`veto v${VERSION}`);
|
|
139
|
-
}
|
|
140
|
-
function parseArgs(args) {
|
|
141
|
-
const flags = {};
|
|
142
|
-
const values = {};
|
|
143
|
-
const positionals = [];
|
|
144
|
-
let command = '';
|
|
145
|
-
const valueFlags = new Set([
|
|
146
|
-
'runs', 'duration', 'output', 'margin',
|
|
147
|
-
'input', 'file', 'provider', 'model',
|
|
148
|
-
'policy', 'format', 'pack',
|
|
149
|
-
'old', 'new', 'log', 'mode',
|
|
150
|
-
'directory', 'prompt', 'renderer',
|
|
151
|
-
]);
|
|
152
|
-
for (let i = 0; i < args.length; i++) {
|
|
153
|
-
const arg = args[i];
|
|
154
|
-
if (arg.startsWith('--')) {
|
|
155
|
-
const flag = arg.slice(2);
|
|
156
|
-
if (valueFlags.has(flag) && i + 1 < args.length) {
|
|
157
|
-
values[flag] = args[++i];
|
|
158
|
-
}
|
|
159
|
-
else {
|
|
160
|
-
flags[flag] = true;
|
|
161
|
-
}
|
|
162
|
-
}
|
|
163
|
-
else if (arg.startsWith('-')) {
|
|
164
|
-
const shortFlags = arg.slice(1).split('');
|
|
165
|
-
for (const f of shortFlags) {
|
|
166
|
-
switch (f) {
|
|
167
|
-
case 'f':
|
|
168
|
-
flags['force'] = true;
|
|
169
|
-
break;
|
|
170
|
-
case 'q':
|
|
171
|
-
flags['quiet'] = true;
|
|
172
|
-
break;
|
|
173
|
-
case 'y':
|
|
174
|
-
flags['yes'] = true;
|
|
175
|
-
break;
|
|
176
|
-
case 'h':
|
|
177
|
-
flags['help'] = true;
|
|
178
|
-
break;
|
|
179
|
-
}
|
|
180
|
-
}
|
|
181
|
-
}
|
|
182
|
-
else if (!command) {
|
|
183
|
-
command = arg;
|
|
184
|
-
}
|
|
185
|
-
else {
|
|
186
|
-
positionals.push(arg);
|
|
187
|
-
}
|
|
188
|
-
}
|
|
189
|
-
return { command, positionals, flags, values };
|
|
190
|
-
}
|
|
191
|
-
function parseRendererPreference(rawValue) {
|
|
192
|
-
if (!rawValue) {
|
|
193
|
-
return 'auto';
|
|
194
|
-
}
|
|
195
|
-
if (rawValue === 'auto' || rawValue === 'opentui' || rawValue === 'ansi') {
|
|
196
|
-
return rawValue;
|
|
197
|
-
}
|
|
198
|
-
console.error(`Error: invalid --renderer value "${rawValue}". Expected auto|opentui|ansi.`);
|
|
199
|
-
process.exit(1);
|
|
200
|
-
}
|
|
201
|
-
async function runStudio(flags, values) {
|
|
202
|
-
if (flags['legacy']) {
|
|
203
|
-
await startRepl({
|
|
204
|
-
cwd: values['directory'],
|
|
205
|
-
version: VERSION,
|
|
206
|
-
});
|
|
207
|
-
return;
|
|
208
|
-
}
|
|
209
|
-
await startStudio({
|
|
210
|
-
cwd: process.cwd(),
|
|
211
|
-
directory: values['directory'],
|
|
212
|
-
renderer: parseRendererPreference(values['renderer']),
|
|
213
|
-
includeExamples: flags['include-examples'],
|
|
214
|
-
includeTests: flags['include-tests'],
|
|
215
|
-
demoTemplate: flags['demo-template'],
|
|
216
|
-
version: VERSION,
|
|
217
|
-
});
|
|
218
|
-
}
|
|
219
|
-
async function runLearn(flags, values) {
|
|
220
|
-
const quiet = flags['quiet'] ?? false;
|
|
221
|
-
const stopCondition = {};
|
|
222
|
-
if (values['runs']) {
|
|
223
|
-
const runs = parseInt(values['runs'], 10);
|
|
224
|
-
if (isNaN(runs) || runs <= 0) {
|
|
225
|
-
console.error('--runs must be a positive integer');
|
|
226
|
-
process.exit(1);
|
|
227
|
-
}
|
|
228
|
-
stopCondition.runs = runs;
|
|
229
|
-
}
|
|
230
|
-
if (values['duration']) {
|
|
231
|
-
stopCondition.durationMs = parseDuration(values['duration']);
|
|
232
|
-
}
|
|
233
|
-
if (!stopCondition.runs && !stopCondition.durationMs) {
|
|
234
|
-
console.error('veto learn requires --runs or --duration');
|
|
235
|
-
console.error('Example: veto learn --runs 10');
|
|
236
|
-
process.exit(1);
|
|
237
|
-
}
|
|
238
|
-
const margin = values['margin'] ? parseFloat(values['margin']) : 0.1;
|
|
239
|
-
if (values['margin'] && (isNaN(margin) || margin < 0 || margin > 1)) {
|
|
240
|
-
console.error('--margin must be a number between 0 and 1');
|
|
241
|
-
process.exit(1);
|
|
242
|
-
}
|
|
243
|
-
const outputPath = resolve(values['output'] ?? './veto/rules/learned.yaml');
|
|
244
|
-
const observer = new Observer(stopCondition);
|
|
245
|
-
observer.start();
|
|
246
|
-
if (!quiet) {
|
|
247
|
-
console.log('');
|
|
248
|
-
console.log('Veto Learn - Observing tool calls...');
|
|
249
|
-
if (stopCondition.runs)
|
|
250
|
-
console.log(` Stop after: ${stopCondition.runs} calls`);
|
|
251
|
-
if (stopCondition.durationMs)
|
|
252
|
-
console.log(` Stop after: ${values['duration']}`);
|
|
253
|
-
console.log(` Output: ${outputPath}`);
|
|
254
|
-
console.log(` Margin: ${margin}`);
|
|
255
|
-
console.log('');
|
|
256
|
-
console.log('Reading tool calls from stdin (one JSON object per line)...');
|
|
257
|
-
console.log('Format: {"tool": "tool_name", "args": {...}}');
|
|
258
|
-
console.log('');
|
|
259
|
-
}
|
|
260
|
-
const readline = await import('node:readline');
|
|
261
|
-
const rl = readline.createInterface({ input: process.stdin });
|
|
262
|
-
for await (const line of rl) {
|
|
263
|
-
if (observer.stopped)
|
|
264
|
-
break;
|
|
265
|
-
const trimmed = line.trim();
|
|
266
|
-
if (!trimmed)
|
|
267
|
-
continue;
|
|
268
|
-
try {
|
|
269
|
-
const parsed = JSON.parse(trimmed);
|
|
270
|
-
const toolName = parsed.tool ?? parsed.name;
|
|
271
|
-
const args = parsed.args ?? parsed.arguments ?? {};
|
|
272
|
-
if (!toolName || typeof toolName !== 'string') {
|
|
273
|
-
if (!quiet)
|
|
274
|
-
console.error(' Skipping line: missing "tool" or "name" field');
|
|
275
|
-
continue;
|
|
276
|
-
}
|
|
277
|
-
observer.recordRaw(toolName, args);
|
|
278
|
-
if (!quiet)
|
|
279
|
-
console.log(` [${observer.callCount}] ${toolName}(${JSON.stringify(args).slice(0, 60)})`);
|
|
280
|
-
}
|
|
281
|
-
catch {
|
|
282
|
-
if (!quiet)
|
|
283
|
-
console.error(` Skipping invalid JSON: ${trimmed.slice(0, 50)}`);
|
|
284
|
-
}
|
|
285
|
-
if (observer.shouldStop())
|
|
286
|
-
break;
|
|
287
|
-
}
|
|
288
|
-
rl.close();
|
|
289
|
-
const observations = observer.getObservations();
|
|
290
|
-
const generator = new PolicyGenerator(margin);
|
|
291
|
-
const policies = generator.generate(observations);
|
|
292
|
-
if (policies.length === 0) {
|
|
293
|
-
if (!quiet)
|
|
294
|
-
console.log('No tool calls observed. No policies generated.');
|
|
295
|
-
process.exit(0);
|
|
296
|
-
}
|
|
297
|
-
const yaml = policiesToYaml(policies);
|
|
298
|
-
mkdirSync(dirname(outputPath), { recursive: true });
|
|
299
|
-
writeFileSync(outputPath, yaml, 'utf-8');
|
|
300
|
-
if (!quiet) {
|
|
301
|
-
console.log('');
|
|
302
|
-
console.log(`Generated ${policies.length} policies from ${observer.callCount} observations.`);
|
|
303
|
-
console.log(`Output: ${outputPath}`);
|
|
304
|
-
console.log('');
|
|
305
|
-
for (const p of policies) {
|
|
306
|
-
console.log(` ${p.toolName}: ${p.constraints.length} constraints`);
|
|
307
|
-
}
|
|
308
|
-
console.log('');
|
|
309
|
-
}
|
|
310
|
-
}
|
|
311
|
-
async function main() {
|
|
312
|
-
const args = process.argv.slice(2);
|
|
313
|
-
const { command, positionals, flags, values } = parseArgs(args);
|
|
314
|
-
if (flags['help'] || command === 'help') {
|
|
315
|
-
printHelp();
|
|
316
|
-
process.exit(0);
|
|
317
|
-
}
|
|
318
|
-
if (flags['version'] || command === 'version') {
|
|
319
|
-
printVersion();
|
|
320
|
-
process.exit(0);
|
|
321
|
-
}
|
|
322
|
-
if (flags['repl']) {
|
|
323
|
-
if (command && command !== '') {
|
|
324
|
-
console.error('Error: --repl cannot be combined with another command');
|
|
325
|
-
process.exit(1);
|
|
326
|
-
}
|
|
327
|
-
await runStudio(flags, values);
|
|
328
|
-
process.exit(0);
|
|
329
|
-
}
|
|
330
|
-
switch (command) {
|
|
331
|
-
case 'repl': {
|
|
332
|
-
await runStudio(flags, values);
|
|
333
|
-
process.exit(0);
|
|
334
|
-
break;
|
|
335
|
-
}
|
|
336
|
-
case 'init': {
|
|
337
|
-
const result = await init({
|
|
338
|
-
force: flags['force'],
|
|
339
|
-
pack: values['pack'],
|
|
340
|
-
quiet: flags['quiet'],
|
|
341
|
-
agent: flags['agent'],
|
|
342
|
-
yes: flags['yes'],
|
|
343
|
-
mode: values['mode'],
|
|
344
|
-
approval: flags['approval'],
|
|
345
|
-
});
|
|
346
|
-
process.exit(result.success ? 0 : 1);
|
|
347
|
-
break;
|
|
348
|
-
}
|
|
349
|
-
case 'agent': {
|
|
350
|
-
const subCommand = positionals[0] ?? 'help';
|
|
351
|
-
const subArgs = positionals.slice(1);
|
|
352
|
-
switch (subCommand) {
|
|
353
|
-
case 'init': {
|
|
354
|
-
await agentInit({
|
|
355
|
-
directory: values['directory'],
|
|
356
|
-
format: values['format'],
|
|
357
|
-
});
|
|
358
|
-
process.exit(0);
|
|
359
|
-
break;
|
|
360
|
-
}
|
|
361
|
-
case 'policy': {
|
|
362
|
-
const policyCmd = subArgs[0] ?? 'help';
|
|
363
|
-
switch (policyCmd) {
|
|
364
|
-
case 'add': {
|
|
365
|
-
const prompt = values['prompt'] ?? subArgs.slice(1).join(' ');
|
|
366
|
-
if (!prompt) {
|
|
367
|
-
console.error('Error: policy add requires a prompt');
|
|
368
|
-
console.error('Usage: veto agent policy add "block external API calls"');
|
|
369
|
-
process.exit(1);
|
|
370
|
-
}
|
|
371
|
-
await agentPolicyAdd(prompt, {
|
|
372
|
-
directory: values['directory'],
|
|
373
|
-
format: values['format'],
|
|
374
|
-
});
|
|
375
|
-
process.exit(0);
|
|
376
|
-
break;
|
|
377
|
-
}
|
|
378
|
-
case 'list': {
|
|
379
|
-
await agentPolicyList({
|
|
380
|
-
directory: values['directory'],
|
|
381
|
-
format: values['format'],
|
|
382
|
-
});
|
|
383
|
-
process.exit(0);
|
|
384
|
-
break;
|
|
385
|
-
}
|
|
386
|
-
default: {
|
|
387
|
-
console.error(`Unknown agent policy command: ${policyCmd}`);
|
|
388
|
-
console.error('Usage: veto agent policy [add|list]');
|
|
389
|
-
process.exit(1);
|
|
390
|
-
}
|
|
391
|
-
}
|
|
392
|
-
break;
|
|
393
|
-
}
|
|
394
|
-
case 'scan': {
|
|
395
|
-
await agentScan({
|
|
396
|
-
directory: values['directory'],
|
|
397
|
-
format: values['format'],
|
|
398
|
-
});
|
|
399
|
-
process.exit(0);
|
|
400
|
-
break;
|
|
401
|
-
}
|
|
402
|
-
case 'config': {
|
|
403
|
-
await agentConfig({
|
|
404
|
-
directory: values['directory'],
|
|
405
|
-
format: values['format'],
|
|
406
|
-
});
|
|
407
|
-
process.exit(0);
|
|
408
|
-
break;
|
|
409
|
-
}
|
|
410
|
-
case 'help':
|
|
411
|
-
default: {
|
|
412
|
-
console.log('Agent commands:');
|
|
413
|
-
console.log(' veto agent init Initialize Veto in agent mode');
|
|
414
|
-
console.log(' veto agent policy add "..." Add a policy from natural language');
|
|
415
|
-
console.log(' veto agent policy list List all policies');
|
|
416
|
-
console.log(' veto agent scan Scan tools and show coverage');
|
|
417
|
-
console.log(' veto agent config Show current configuration');
|
|
418
|
-
console.log('');
|
|
419
|
-
console.log('Options:');
|
|
420
|
-
console.log(' --directory <path> Project directory');
|
|
421
|
-
console.log(' --format json|yaml Output format (default: json)');
|
|
422
|
-
process.exit(0);
|
|
423
|
-
break;
|
|
424
|
-
}
|
|
425
|
-
}
|
|
426
|
-
break;
|
|
427
|
-
}
|
|
428
|
-
case 'learn': {
|
|
429
|
-
await runLearn(flags, values);
|
|
430
|
-
process.exit(0);
|
|
431
|
-
break;
|
|
432
|
-
}
|
|
433
|
-
case 'compile': {
|
|
434
|
-
if (!values['output']) {
|
|
435
|
-
console.error('Error: --output is required for compile command');
|
|
436
|
-
process.exit(1);
|
|
437
|
-
}
|
|
438
|
-
if (values['provider'] && !VALID_PROVIDERS.has(values['provider'])) {
|
|
439
|
-
console.error(`Error: Invalid provider "${values['provider']}". Must be one of: openai, anthropic, gemini, openrouter`);
|
|
440
|
-
process.exit(1);
|
|
441
|
-
}
|
|
442
|
-
const result = await compile({
|
|
443
|
-
input: values['input'],
|
|
444
|
-
file: values['file'],
|
|
445
|
-
output: values['output'],
|
|
446
|
-
provider: values['provider'],
|
|
447
|
-
model: values['model'],
|
|
448
|
-
quiet: flags['quiet'],
|
|
449
|
-
});
|
|
450
|
-
process.exit(result.success ? 0 : 1);
|
|
451
|
-
break;
|
|
452
|
-
}
|
|
453
|
-
case 'test': {
|
|
454
|
-
const testResult = await test({
|
|
455
|
-
policy: values['policy'],
|
|
456
|
-
output: values['output'],
|
|
457
|
-
quiet: flags['quiet'],
|
|
458
|
-
format: values['format'] ?? undefined,
|
|
459
|
-
});
|
|
460
|
-
process.exit(testResult.success ? 0 : 1);
|
|
461
|
-
break;
|
|
462
|
-
}
|
|
463
|
-
case 'scan': {
|
|
464
|
-
const scanResult = await scan({
|
|
465
|
-
directory: values['directory'],
|
|
466
|
-
quiet: flags['quiet'],
|
|
467
|
-
failUncovered: flags['fail-uncovered'],
|
|
468
|
-
suggest: flags['suggest'],
|
|
469
|
-
includeExamples: flags['include-examples'],
|
|
470
|
-
includeTests: flags['include-tests'],
|
|
471
|
-
format: values['format'] ?? undefined,
|
|
472
|
-
});
|
|
473
|
-
process.exit(scanResult.success ? 0 : 1);
|
|
474
|
-
break;
|
|
475
|
-
}
|
|
476
|
-
case 'diff': {
|
|
477
|
-
if (positionals.length > 1) {
|
|
478
|
-
console.error('Error: diff command accepts at most one <policy-path> positional argument');
|
|
479
|
-
process.exit(1);
|
|
480
|
-
}
|
|
481
|
-
const diffResult = await diff({
|
|
482
|
-
quiet: flags['quiet'],
|
|
483
|
-
policyPath: positionals[0],
|
|
484
|
-
old: values['old'],
|
|
485
|
-
new: values['new'],
|
|
486
|
-
log: values['log'],
|
|
487
|
-
format: values['format'] ?? undefined,
|
|
488
|
-
});
|
|
489
|
-
process.exit(diffResult.success ? 0 : 1);
|
|
490
|
-
break;
|
|
491
|
-
}
|
|
492
|
-
case '': {
|
|
493
|
-
await runStudio(flags, values);
|
|
494
|
-
process.exit(0);
|
|
495
|
-
break;
|
|
496
|
-
}
|
|
497
|
-
default: {
|
|
498
|
-
console.error(`Unknown command: ${command}`);
|
|
499
|
-
console.error('Run "veto help" for usage information.');
|
|
500
|
-
process.exit(1);
|
|
501
|
-
}
|
|
502
|
-
}
|
|
503
|
-
}
|
|
504
|
-
main().catch((error) => {
|
|
505
|
-
console.error('Error:', error.message);
|
|
506
|
-
process.exit(1);
|
|
507
|
-
});
|
|
2
|
+
import { runCliOrExit } from './runner.js';
|
|
3
|
+
void runCliOrExit();
|
|
508
4
|
//# sourceMappingURL=bin.js.map
|
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":";AAEA,OAAO,EAAE,YAAY,EAAE,MAAM,aAAa,CAAC;AAE3C,KAAK,YAAY,EAAE,CAAC"}
|