veto-sdk 1.0.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 +209 -0
- package/dist/benchmark/cli.d.ts +22 -0
- package/dist/benchmark/cli.d.ts.map +1 -0
- package/dist/benchmark/cli.js +238 -0
- package/dist/benchmark/cli.js.map +1 -0
- package/dist/benchmark/index.d.ts +10 -0
- package/dist/benchmark/index.d.ts.map +1 -0
- package/dist/benchmark/index.js +10 -0
- package/dist/benchmark/index.js.map +1 -0
- package/dist/benchmark/loader.d.ts +19 -0
- package/dist/benchmark/loader.d.ts.map +1 -0
- package/dist/benchmark/loader.js +321 -0
- package/dist/benchmark/loader.js.map +1 -0
- package/dist/benchmark/metrics.d.ts +35 -0
- package/dist/benchmark/metrics.d.ts.map +1 -0
- package/dist/benchmark/metrics.js +195 -0
- package/dist/benchmark/metrics.js.map +1 -0
- package/dist/benchmark/runner.d.ts +39 -0
- package/dist/benchmark/runner.d.ts.map +1 -0
- package/dist/benchmark/runner.js +279 -0
- package/dist/benchmark/runner.js.map +1 -0
- package/dist/benchmark/types.d.ts +188 -0
- package/dist/benchmark/types.d.ts.map +1 -0
- package/dist/benchmark/types.js +24 -0
- package/dist/benchmark/types.js.map +1 -0
- package/dist/cli/bin.d.ts +8 -0
- package/dist/cli/bin.d.ts.map +1 -0
- package/dist/cli/bin.js +120 -0
- package/dist/cli/bin.js.map +1 -0
- package/dist/cli/config.d.ts +126 -0
- package/dist/cli/config.d.ts.map +1 -0
- package/dist/cli/config.js +137 -0
- package/dist/cli/config.js.map +1 -0
- package/dist/cli/index.d.ts +9 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +9 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/cli/init.d.ts +64 -0
- package/dist/cli/init.d.ts.map +1 -0
- package/dist/cli/init.js +160 -0
- package/dist/cli/init.js.map +1 -0
- package/dist/cli/templates.d.ts +22 -0
- package/dist/cli/templates.d.ts.map +1 -0
- package/dist/cli/templates.js +132 -0
- package/dist/cli/templates.js.map +1 -0
- package/dist/core/history.d.ts +104 -0
- package/dist/core/history.d.ts.map +1 -0
- package/dist/core/history.js +148 -0
- package/dist/core/history.js.map +1 -0
- package/dist/core/index.d.ts +10 -0
- package/dist/core/index.d.ts.map +1 -0
- package/dist/core/index.js +10 -0
- package/dist/core/index.js.map +1 -0
- package/dist/core/interceptor.d.ts +96 -0
- package/dist/core/interceptor.d.ts.map +1 -0
- package/dist/core/interceptor.js +227 -0
- package/dist/core/interceptor.js.map +1 -0
- package/dist/core/validator.d.ts +107 -0
- package/dist/core/validator.d.ts.map +1 -0
- package/dist/core/validator.js +263 -0
- package/dist/core/validator.js.map +1 -0
- package/dist/core/veto.d.ts +265 -0
- package/dist/core/veto.d.ts.map +1 -0
- package/dist/core/veto.js +681 -0
- package/dist/core/veto.js.map +1 -0
- package/dist/index.d.ts +43 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +40 -0
- package/dist/index.js.map +1 -0
- package/dist/kernel/client.d.ts +82 -0
- package/dist/kernel/client.d.ts.map +1 -0
- package/dist/kernel/client.js +162 -0
- package/dist/kernel/client.js.map +1 -0
- package/dist/kernel/index.d.ts +9 -0
- package/dist/kernel/index.d.ts.map +1 -0
- package/dist/kernel/index.js +9 -0
- package/dist/kernel/index.js.map +1 -0
- package/dist/kernel/prompt.d.ts +27 -0
- package/dist/kernel/prompt.d.ts.map +1 -0
- package/dist/kernel/prompt.js +127 -0
- package/dist/kernel/prompt.js.map +1 -0
- package/dist/kernel/types.d.ts +85 -0
- package/dist/kernel/types.d.ts.map +1 -0
- package/dist/kernel/types.js +52 -0
- package/dist/kernel/types.js.map +1 -0
- package/dist/providers/adapters.d.ts +167 -0
- package/dist/providers/adapters.d.ts.map +1 -0
- package/dist/providers/adapters.js +244 -0
- package/dist/providers/adapters.js.map +1 -0
- package/dist/providers/index.d.ts +11 -0
- package/dist/providers/index.d.ts.map +1 -0
- package/dist/providers/index.js +11 -0
- package/dist/providers/index.js.map +1 -0
- package/dist/providers/types.d.ts +92 -0
- package/dist/providers/types.d.ts.map +1 -0
- package/dist/providers/types.js +10 -0
- package/dist/providers/types.js.map +1 -0
- package/dist/rules/api-client.d.ts +103 -0
- package/dist/rules/api-client.d.ts.map +1 -0
- package/dist/rules/api-client.js +241 -0
- package/dist/rules/api-client.js.map +1 -0
- package/dist/rules/index.d.ts +10 -0
- package/dist/rules/index.d.ts.map +1 -0
- package/dist/rules/index.js +10 -0
- package/dist/rules/index.js.map +1 -0
- package/dist/rules/loader.d.ts +116 -0
- package/dist/rules/loader.d.ts.map +1 -0
- package/dist/rules/loader.js +300 -0
- package/dist/rules/loader.js.map +1 -0
- package/dist/rules/rule-validator.d.ts +135 -0
- package/dist/rules/rule-validator.d.ts.map +1 -0
- package/dist/rules/rule-validator.js +239 -0
- package/dist/rules/rule-validator.js.map +1 -0
- package/dist/rules/types.d.ts +162 -0
- package/dist/rules/types.d.ts.map +1 -0
- package/dist/rules/types.js +16 -0
- package/dist/rules/types.js.map +1 -0
- package/dist/types/config.d.ts +171 -0
- package/dist/types/config.d.ts.map +1 -0
- package/dist/types/config.js +31 -0
- package/dist/types/config.js.map +1 -0
- package/dist/types/index.d.ts +8 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +8 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types/tool.d.ts +156 -0
- package/dist/types/tool.d.ts.map +1 -0
- package/dist/types/tool.js +27 -0
- package/dist/types/tool.js.map +1 -0
- package/dist/utils/glob.d.ts +21 -0
- package/dist/utils/glob.d.ts.map +1 -0
- package/dist/utils/glob.js +147 -0
- package/dist/utils/glob.js.map +1 -0
- package/dist/utils/id.d.ts +28 -0
- package/dist/utils/id.d.ts.map +1 -0
- package/dist/utils/id.js +43 -0
- package/dist/utils/id.js.map +1 -0
- package/dist/utils/index.d.ts +9 -0
- package/dist/utils/index.d.ts.map +1 -0
- package/dist/utils/index.js +9 -0
- package/dist/utils/index.js.map +1 -0
- package/dist/utils/logger.d.ts +97 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +153 -0
- package/dist/utils/logger.js.map +1 -0
- package/package.json +90 -0
|
@@ -0,0 +1,265 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Main Veto guardrail class.
|
|
3
|
+
*
|
|
4
|
+
* This is the primary entry point for using Veto. It automatically loads
|
|
5
|
+
* configuration and rules from the veto/ directory and validates tool calls.
|
|
6
|
+
*
|
|
7
|
+
* @module core/veto
|
|
8
|
+
*/
|
|
9
|
+
import type { ToolDefinition, ToolCall } from '../types/tool.js';
|
|
10
|
+
import type { Validator, NamedValidator, LogLevel } from '../types/config.js';
|
|
11
|
+
import { type HistoryStats } from './history.js';
|
|
12
|
+
import { ToolCallDeniedError, type InterceptionResult } from './interceptor.js';
|
|
13
|
+
import type { Rule } from '../rules/types.js';
|
|
14
|
+
import { KernelClient } from '../kernel/client.js';
|
|
15
|
+
/**
|
|
16
|
+
* Veto operating mode.
|
|
17
|
+
* - "strict": Block tool calls when validation fails
|
|
18
|
+
* - "log": Only log validation failures, allow tool calls to proceed
|
|
19
|
+
*/
|
|
20
|
+
export type VetoMode = 'strict' | 'log';
|
|
21
|
+
/**
|
|
22
|
+
* Validation mode - how tool calls are validated.
|
|
23
|
+
* - "api": Use external HTTP API for validation
|
|
24
|
+
* - "kernel": Use local kernel model via Ollama
|
|
25
|
+
*/
|
|
26
|
+
export type ValidationMode = 'api' | 'kernel';
|
|
27
|
+
/**
|
|
28
|
+
* Wrapped handler function type.
|
|
29
|
+
*/
|
|
30
|
+
export type WrappedHandler = (args: Record<string, unknown>) => Promise<unknown>;
|
|
31
|
+
/**
|
|
32
|
+
* Result of wrapping tools with Veto.
|
|
33
|
+
*/
|
|
34
|
+
export interface WrappedTools {
|
|
35
|
+
/** Tool definitions (schemas) to pass to AI models */
|
|
36
|
+
definitions: ToolDefinition[];
|
|
37
|
+
/** Wrapped handler functions keyed by tool name */
|
|
38
|
+
implementations: Record<string, WrappedHandler>;
|
|
39
|
+
}
|
|
40
|
+
/**
|
|
41
|
+
* Options for creating a Veto instance.
|
|
42
|
+
*/
|
|
43
|
+
export interface VetoOptions {
|
|
44
|
+
/**
|
|
45
|
+
* Path to the veto directory containing config and rules.
|
|
46
|
+
* Defaults to './veto' relative to current working directory.
|
|
47
|
+
*/
|
|
48
|
+
configDir?: string;
|
|
49
|
+
/**
|
|
50
|
+
* Override the operating mode.
|
|
51
|
+
* - "strict": Block tool calls when validation fails
|
|
52
|
+
* - "log": Only log validation failures, allow tool calls to proceed
|
|
53
|
+
*/
|
|
54
|
+
mode?: VetoMode;
|
|
55
|
+
/**
|
|
56
|
+
* Override log level.
|
|
57
|
+
* Can also be set via VETO_LOG_LEVEL environment variable.
|
|
58
|
+
*/
|
|
59
|
+
logLevel?: LogLevel;
|
|
60
|
+
/**
|
|
61
|
+
* Session ID for tracking.
|
|
62
|
+
* Can also be set via VETO_SESSION_ID environment variable.
|
|
63
|
+
*/
|
|
64
|
+
sessionId?: string;
|
|
65
|
+
/**
|
|
66
|
+
* Agent ID for tracking.
|
|
67
|
+
* Can also be set via VETO_AGENT_ID environment variable.
|
|
68
|
+
*/
|
|
69
|
+
agentId?: string;
|
|
70
|
+
/**
|
|
71
|
+
* Additional validators to run alongside rule-based validation.
|
|
72
|
+
*/
|
|
73
|
+
validators?: (Validator | NamedValidator)[];
|
|
74
|
+
/**
|
|
75
|
+
* Injected kernel client for testing or custom configurations.
|
|
76
|
+
*/
|
|
77
|
+
kernelClient?: KernelClient;
|
|
78
|
+
}
|
|
79
|
+
/**
|
|
80
|
+
* Veto - A guardrail system for AI agent tool calls.
|
|
81
|
+
*
|
|
82
|
+
* Veto automatically loads configuration from the veto/ directory and
|
|
83
|
+
* validates tool calls against defined rules via an external API.
|
|
84
|
+
*
|
|
85
|
+
* @example
|
|
86
|
+
* ```typescript
|
|
87
|
+
* import { Veto } from 'veto';
|
|
88
|
+
*
|
|
89
|
+
* // Initialize Veto (loads config from ./veto automatically)
|
|
90
|
+
* const veto = await Veto.init();
|
|
91
|
+
*
|
|
92
|
+
* // Wrap your tools
|
|
93
|
+
* const wrappedTools = veto.wrapTools(myTools);
|
|
94
|
+
*
|
|
95
|
+
* // Pass to AI provider, then validate calls
|
|
96
|
+
* const result = await veto.validateToolCall(toolCall);
|
|
97
|
+
* ```
|
|
98
|
+
*/
|
|
99
|
+
export declare class Veto {
|
|
100
|
+
private readonly logger;
|
|
101
|
+
private readonly validationEngine;
|
|
102
|
+
private readonly historyTracker;
|
|
103
|
+
private readonly interceptor;
|
|
104
|
+
private readonly registeredTools;
|
|
105
|
+
private readonly configDir;
|
|
106
|
+
private readonly mode;
|
|
107
|
+
private readonly validationMode;
|
|
108
|
+
private readonly apiBaseUrl;
|
|
109
|
+
private readonly apiEndpoint;
|
|
110
|
+
private readonly apiTimeout;
|
|
111
|
+
private readonly apiRetries;
|
|
112
|
+
private readonly apiRetryDelay;
|
|
113
|
+
private readonly sessionId?;
|
|
114
|
+
private readonly agentId?;
|
|
115
|
+
private kernelClient;
|
|
116
|
+
private readonly kernelConfig;
|
|
117
|
+
private readonly rules;
|
|
118
|
+
private constructor();
|
|
119
|
+
/**
|
|
120
|
+
* Initialize Veto by loading configuration and rules.
|
|
121
|
+
*
|
|
122
|
+
* @param options - Initialization options
|
|
123
|
+
* @returns Initialized Veto instance
|
|
124
|
+
*
|
|
125
|
+
* @example
|
|
126
|
+
* ```typescript
|
|
127
|
+
* // Use defaults (loads from ./veto)
|
|
128
|
+
* const veto = await Veto.init();
|
|
129
|
+
*
|
|
130
|
+
* // Custom config directory
|
|
131
|
+
* const veto = await Veto.init({ configDir: './my-veto-config' });
|
|
132
|
+
*
|
|
133
|
+
* // Override API URL
|
|
134
|
+
* const veto = await Veto.init({ apiBaseUrl: 'https://api.example.com' });
|
|
135
|
+
* ```
|
|
136
|
+
*/
|
|
137
|
+
static init(options?: VetoOptions): Promise<Veto>;
|
|
138
|
+
/**
|
|
139
|
+
* Load rules from YAML files.
|
|
140
|
+
*/
|
|
141
|
+
private static loadRules;
|
|
142
|
+
/**
|
|
143
|
+
* Find YAML files in a directory.
|
|
144
|
+
*/
|
|
145
|
+
private static findYamlFiles;
|
|
146
|
+
/**
|
|
147
|
+
* Get rules applicable to a tool.
|
|
148
|
+
*/
|
|
149
|
+
private getRulesForTool;
|
|
150
|
+
/**
|
|
151
|
+
* Validate a tool call with the external API.
|
|
152
|
+
*/
|
|
153
|
+
private validateWithAPI;
|
|
154
|
+
/**
|
|
155
|
+
* Make the API request.
|
|
156
|
+
*/
|
|
157
|
+
private makeAPIRequest;
|
|
158
|
+
/**
|
|
159
|
+
* Handle successful API response.
|
|
160
|
+
*/
|
|
161
|
+
private handleAPIResponse;
|
|
162
|
+
/**
|
|
163
|
+
* Handle API failure. In log mode, always allow. In strict mode, block.
|
|
164
|
+
*/
|
|
165
|
+
private handleAPIFailure;
|
|
166
|
+
/**
|
|
167
|
+
* Get or create the kernel client.
|
|
168
|
+
*/
|
|
169
|
+
private getKernelClient;
|
|
170
|
+
/**
|
|
171
|
+
* Validate a tool call with the local kernel model.
|
|
172
|
+
*/
|
|
173
|
+
private validateWithKernel;
|
|
174
|
+
/**
|
|
175
|
+
* Handle successful kernel response.
|
|
176
|
+
*/
|
|
177
|
+
private handleKernelResponse;
|
|
178
|
+
/**
|
|
179
|
+
* Handle kernel failure. In log mode, always allow. In strict mode, block.
|
|
180
|
+
*/
|
|
181
|
+
private handleKernelFailure;
|
|
182
|
+
/**
|
|
183
|
+
* Build history summary for API.
|
|
184
|
+
*/
|
|
185
|
+
private buildHistorySummary;
|
|
186
|
+
/**
|
|
187
|
+
* Delay helper.
|
|
188
|
+
*/
|
|
189
|
+
private delay;
|
|
190
|
+
/**
|
|
191
|
+
* Wrap tools for use with an AI provider.
|
|
192
|
+
*
|
|
193
|
+
* Returns an object containing:
|
|
194
|
+
* - `definitions`: Tool schemas to pass to the AI model
|
|
195
|
+
* - `implementations`: Object with wrapped handler functions keyed by tool name
|
|
196
|
+
*
|
|
197
|
+
* @param tools - Tools to wrap (must have handlers)
|
|
198
|
+
* @returns Object with toolDefinitions and toolImplementations
|
|
199
|
+
*
|
|
200
|
+
* @example
|
|
201
|
+
* ```typescript
|
|
202
|
+
* const tools = [
|
|
203
|
+
* {
|
|
204
|
+
* name: 'read_file',
|
|
205
|
+
* inputSchema: { type: 'object', properties: { path: { type: 'string' } } },
|
|
206
|
+
* handler: async (args) => fs.readFileSync(args.path, 'utf-8')
|
|
207
|
+
* }
|
|
208
|
+
* ];
|
|
209
|
+
*
|
|
210
|
+
* const veto = await Veto.init();
|
|
211
|
+
* const { definitions, implementations } = veto.wrapTools(tools);
|
|
212
|
+
*
|
|
213
|
+
* // Pass definitions to AI model
|
|
214
|
+
* const response = await openai.chat.completions.create({
|
|
215
|
+
* tools: toOpenAITools(definitions),
|
|
216
|
+
* ...
|
|
217
|
+
* });
|
|
218
|
+
*
|
|
219
|
+
* // Execute tool calls using implementations
|
|
220
|
+
* const result = await implementations.read_file({ path: '/home/user/file.txt' });
|
|
221
|
+
* ```
|
|
222
|
+
*/
|
|
223
|
+
wrapTools(tools: readonly ToolDefinition[]): WrappedTools;
|
|
224
|
+
/**
|
|
225
|
+
* Validate a tool call.
|
|
226
|
+
*
|
|
227
|
+
* @param call - The tool call to validate
|
|
228
|
+
* @returns Validation result
|
|
229
|
+
*/
|
|
230
|
+
validateToolCall(call: ToolCall): Promise<InterceptionResult>;
|
|
231
|
+
/**
|
|
232
|
+
* Validate a tool call and throw if denied.
|
|
233
|
+
*
|
|
234
|
+
* @param call - The tool call to validate
|
|
235
|
+
* @returns Validation result (only if allowed)
|
|
236
|
+
* @throws {ToolCallDeniedError} If the call is denied
|
|
237
|
+
*/
|
|
238
|
+
validateToolCallOrThrow(call: ToolCall): Promise<InterceptionResult>;
|
|
239
|
+
/**
|
|
240
|
+
* Get registered tools.
|
|
241
|
+
*/
|
|
242
|
+
getRegisteredTools(): readonly ToolDefinition[];
|
|
243
|
+
/**
|
|
244
|
+
* Get loaded rules.
|
|
245
|
+
*/
|
|
246
|
+
getLoadedRules(): readonly Rule[];
|
|
247
|
+
/**
|
|
248
|
+
* Get current operating mode.
|
|
249
|
+
*/
|
|
250
|
+
getMode(): VetoMode;
|
|
251
|
+
/**
|
|
252
|
+
* Get current validation mode (api or kernel).
|
|
253
|
+
*/
|
|
254
|
+
getValidationMode(): ValidationMode;
|
|
255
|
+
/**
|
|
256
|
+
* Get history statistics.
|
|
257
|
+
*/
|
|
258
|
+
getHistoryStats(): HistoryStats;
|
|
259
|
+
/**
|
|
260
|
+
* Clear call history.
|
|
261
|
+
*/
|
|
262
|
+
clearHistory(): void;
|
|
263
|
+
}
|
|
264
|
+
export { ToolCallDeniedError };
|
|
265
|
+
//# sourceMappingURL=veto.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"veto.d.ts","sourceRoot":"","sources":["../../src/core/veto.ts"],"names":[],"mappings":"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"}
|