veto-sdk 2.9.0 → 2.9.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 +33 -0
- package/dist/integrations/autogen/index.d.ts +28 -0
- package/dist/integrations/autogen/index.d.ts.map +1 -0
- package/dist/integrations/autogen/index.js +38 -0
- package/dist/integrations/autogen/index.js.map +1 -0
- package/dist/integrations/claude-sdk/index.d.ts +24 -0
- package/dist/integrations/claude-sdk/index.d.ts.map +1 -0
- package/dist/integrations/claude-sdk/index.js +52 -0
- package/dist/integrations/claude-sdk/index.js.map +1 -0
- package/dist/integrations/crewai/index.d.ts +29 -0
- package/dist/integrations/crewai/index.d.ts.map +1 -0
- package/dist/integrations/crewai/index.js +38 -0
- package/dist/integrations/crewai/index.js.map +1 -0
- package/dist/integrations/google-adk/index.d.ts +31 -0
- package/dist/integrations/google-adk/index.d.ts.map +1 -0
- package/dist/integrations/google-adk/index.js +59 -0
- package/dist/integrations/google-adk/index.js.map +1 -0
- package/dist/integrations/langchain/guard.d.ts +10 -0
- package/dist/integrations/langchain/guard.d.ts.map +1 -0
- package/dist/integrations/langchain/guard.js +9 -0
- package/dist/integrations/langchain/guard.js.map +1 -0
- package/dist/integrations/langchain/index.d.ts +2 -0
- package/dist/integrations/langchain/index.d.ts.map +1 -1
- package/dist/integrations/langchain/index.js +1 -0
- package/dist/integrations/langchain/index.js.map +1 -1
- package/dist/integrations/mastra/index.d.ts +22 -0
- package/dist/integrations/mastra/index.d.ts.map +1 -0
- package/dist/integrations/mastra/index.js +41 -0
- package/dist/integrations/mastra/index.js.map +1 -0
- package/dist/integrations/openai-agents/index.d.ts +4 -0
- package/dist/integrations/openai-agents/index.d.ts.map +1 -1
- package/dist/integrations/openai-agents/index.js +11 -1
- package/dist/integrations/openai-agents/index.js.map +1 -1
- package/dist/integrations/shared.d.ts +36 -0
- package/dist/integrations/shared.d.ts.map +1 -0
- package/dist/integrations/shared.js +85 -0
- package/dist/integrations/shared.js.map +1 -0
- package/dist/integrations/vercel-ai/guard.d.ts +12 -0
- package/dist/integrations/vercel-ai/guard.d.ts.map +1 -0
- package/dist/integrations/vercel-ai/guard.js +9 -0
- package/dist/integrations/vercel-ai/guard.js.map +1 -0
- package/dist/integrations/vercel-ai/index.d.ts +2 -0
- package/dist/integrations/vercel-ai/index.d.ts.map +1 -1
- package/dist/integrations/vercel-ai/index.js +1 -0
- package/dist/integrations/vercel-ai/index.js.map +1 -1
- package/package.json +21 -1
package/README.md
CHANGED
|
@@ -65,6 +65,39 @@ rules:
|
|
|
65
65
|
|
|
66
66
|
Actions are `block`, `allow`, `warn`, `log`, and `require_approval`.
|
|
67
67
|
|
|
68
|
+
## Runtime adapters
|
|
69
|
+
|
|
70
|
+
All adapters are dependency-free TypeScript surfaces unless noted; provider-specific schemas reuse the SDK provider adapters.
|
|
71
|
+
|
|
72
|
+
| Runtime | Import | Artifact | Status |
|
|
73
|
+
| ----------------------- | ------------------------------------- | -------------------------------------------- | -------------- |
|
|
74
|
+
| Provider-agnostic tools | `veto-sdk` | `protect(tools)`, `Veto.wrap()` | Canonical path |
|
|
75
|
+
| Vercel AI SDK | `veto-sdk/integrations/vercel-ai` | middleware + guard helper | Supported |
|
|
76
|
+
| OpenAI Agents | `veto-sdk/integrations/openai-agents` | input/output/tool guardrails + guard helper | Supported |
|
|
77
|
+
| LangChain / LangGraph | `veto-sdk/integrations/langchain` | middleware, ToolNode, callback, guard helper | Supported |
|
|
78
|
+
| MCP | `veto-sdk/providers/adapters` | MCP conversion + `Veto.wrapMCPTools()` | Supported |
|
|
79
|
+
| Browser Use | `veto-sdk/integrations/browser-use` | action wrapping | Supported |
|
|
80
|
+
| OpenClaw | `veto-sdk/integrations/openclaw` | before/after tool hooks | Supported |
|
|
81
|
+
| Claude SDK | `veto-sdk/integrations/claude-sdk` | Anthropic tool/tool-use helpers | Added P2 |
|
|
82
|
+
| Google ADK | `veto-sdk/integrations/google-adk` | function declarations/calls | Added P2 |
|
|
83
|
+
| Mastra | `veto-sdk/integrations/mastra` | tool wrappers | Added P2 |
|
|
84
|
+
| AutoGen | `veto-sdk/integrations/autogen` | function/tool wrappers | Added P2 |
|
|
85
|
+
| CrewAI | `veto-sdk/integrations/crewai` | tool-function wrappers | Added P2 |
|
|
86
|
+
|
|
87
|
+
```ts
|
|
88
|
+
import { guardClaudeToolUse } from "veto-sdk/integrations/claude-sdk";
|
|
89
|
+
import { guardGoogleADKFunctionCall } from "veto-sdk/integrations/google-adk";
|
|
90
|
+
import { wrapMastraTool } from "veto-sdk/integrations/mastra";
|
|
91
|
+
import { wrapAutoGenFunction } from "veto-sdk/integrations/autogen";
|
|
92
|
+
import { wrapCrewAITool } from "veto-sdk/integrations/crewai";
|
|
93
|
+
|
|
94
|
+
const claudeDecision = await guardClaudeToolUse(veto, toolUse);
|
|
95
|
+
const googleDecision = await guardGoogleADKFunctionCall(veto, functionCall);
|
|
96
|
+
const safeMastraTool = wrapMastraTool(veto, mastraTool);
|
|
97
|
+
const safeAutoGenFn = wrapAutoGenFunction(veto, "delete_file", deleteFile);
|
|
98
|
+
const safeCrewTool = wrapCrewAITool(veto, crewTool);
|
|
99
|
+
```
|
|
100
|
+
|
|
68
101
|
## Optional semantic PII output detection
|
|
69
102
|
|
|
70
103
|
Output rules can opt into NVIDIA GLiNER PII detection for semantic redaction or blocking beyond regex fallbacks. Enable it explicitly and provide `NVIDIA_API_KEY` or `VETO_NVIDIA_API_KEY`; the synchronous `validateOutput()` API remains regex-only, while wrapped tools and `validateOutputAsync()` run the detector when configured.
|
|
@@ -0,0 +1,28 @@
|
|
|
1
|
+
import type { Veto } from '../../core/veto.js';
|
|
2
|
+
import { type GuardedRuntimeExecutionOptions, type RuntimeGuardDecision, type RuntimeGuardOptions } from '../shared.js';
|
|
3
|
+
export interface AutoGenFunctionCall {
|
|
4
|
+
name: string;
|
|
5
|
+
arguments?: unknown;
|
|
6
|
+
args?: unknown;
|
|
7
|
+
id?: string;
|
|
8
|
+
[key: string]: unknown;
|
|
9
|
+
}
|
|
10
|
+
export type AutoGenToolFunction<TResult = unknown, TContext = unknown> = (args: Record<string, unknown>, context?: TContext) => TResult | Promise<TResult>;
|
|
11
|
+
export interface AutoGenTool<TResult = unknown, TContext = unknown> {
|
|
12
|
+
name: string;
|
|
13
|
+
description?: string;
|
|
14
|
+
parameters?: unknown;
|
|
15
|
+
func?: AutoGenToolFunction<TResult, TContext>;
|
|
16
|
+
execute?: AutoGenToolFunction<TResult, TContext>;
|
|
17
|
+
run?: AutoGenToolFunction<TResult, TContext>;
|
|
18
|
+
[key: string]: unknown;
|
|
19
|
+
}
|
|
20
|
+
export type VetoAutoGenToolOptions<TResult = unknown> = GuardedRuntimeExecutionOptions<TResult>;
|
|
21
|
+
export { VetoRuntimeAdapterError } from '../shared.js';
|
|
22
|
+
export type { GuardedRuntimeExecutionOptions, RuntimeGuardDecision, RuntimeGuardOptions, } from '../shared.js';
|
|
23
|
+
export declare function guardAutoGenToolCall(veto: Veto, call: AutoGenFunctionCall, options?: RuntimeGuardOptions): Promise<RuntimeGuardDecision>;
|
|
24
|
+
export declare function wrapAutoGenFunction<TResult, TContext = unknown>(veto: Veto, name: string, fn: AutoGenToolFunction<TResult, TContext>, options?: VetoAutoGenToolOptions<TResult>): AutoGenToolFunction<TResult, TContext>;
|
|
25
|
+
export declare function wrapAutoGenTool<TResult, TContext, TTool extends AutoGenTool<TResult, TContext>>(veto: Veto, tool: TTool, options?: VetoAutoGenToolOptions<TResult>): TTool;
|
|
26
|
+
export declare function wrapAutoGenTools<TTool extends AutoGenTool>(veto: Veto, tools: TTool[], options?: VetoAutoGenToolOptions): TTool[];
|
|
27
|
+
export declare function wrapAutoGenTools<TTools extends Record<string, AutoGenTool>>(veto: Veto, tools: TTools, options?: VetoAutoGenToolOptions): TTools;
|
|
28
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/autogen/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAIL,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,mBAAmB,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,IAAI,CACvE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,QAAQ,KACf,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,WAAW,WAAW,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO;IAChE,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC9C,OAAO,CAAC,EAAE,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IACjD,GAAG,CAAC,EAAE,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,sBAAsB,CAAC,OAAO,GAAG,OAAO,IAAI,8BAA8B,CAAC,OAAO,CAAC,CAAC;AAEhG,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EACV,8BAA8B,EAC9B,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAQtB,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,mBAAmB,EACzB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAM/B;AAED,wBAAgB,mBAAmB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,EAC7D,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,EAC1C,OAAO,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACxC,mBAAmB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAOxC;AAED,wBAAgB,eAAe,CAC7B,OAAO,EACP,QAAQ,EACR,KAAK,SAAS,WAAW,CAAC,OAAO,EAAE,QAAQ,CAAC,EAE5C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,sBAAsB,CAAC,OAAO,CAAC,GACxC,KAAK,CAiBP;AAED,wBAAgB,gBAAgB,CAAC,KAAK,SAAS,WAAW,EACxD,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EAAE,EACd,OAAO,CAAC,EAAE,sBAAsB,GAC/B,KAAK,EAAE,CAAC;AACX,wBAAgB,gBAAgB,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,WAAW,CAAC,EACzE,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,sBAAsB,GAC/B,MAAM,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { executeGuardedRuntimeToolCall, guardRuntimeToolCall, parseJsonObject, } from '../shared.js';
|
|
2
|
+
export { VetoRuntimeAdapterError } from '../shared.js';
|
|
3
|
+
const AUTO_GEN_FUNCTION_KEYS = ['func', 'execute', 'run'];
|
|
4
|
+
function resolveAutoGenArgs(call) {
|
|
5
|
+
return parseJsonObject(call.arguments ?? call.args);
|
|
6
|
+
}
|
|
7
|
+
export async function guardAutoGenToolCall(veto, call, options) {
|
|
8
|
+
return await guardRuntimeToolCall(veto, {
|
|
9
|
+
id: call.id,
|
|
10
|
+
name: call.name,
|
|
11
|
+
arguments: resolveAutoGenArgs(call),
|
|
12
|
+
}, options);
|
|
13
|
+
}
|
|
14
|
+
export function wrapAutoGenFunction(veto, name, fn, options) {
|
|
15
|
+
return async (args, context) => await executeGuardedRuntimeToolCall(veto, { name, arguments: parseJsonObject(args) }, async (guardedArgs) => await fn(guardedArgs, context), options);
|
|
16
|
+
}
|
|
17
|
+
export function wrapAutoGenTool(veto, tool, options) {
|
|
18
|
+
const wrapped = { ...tool };
|
|
19
|
+
const writable = wrapped;
|
|
20
|
+
for (const key of AUTO_GEN_FUNCTION_KEYS) {
|
|
21
|
+
const fn = tool[key];
|
|
22
|
+
if (typeof fn === 'function') {
|
|
23
|
+
writable[key] = wrapAutoGenFunction(veto, tool.name, fn, options);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return wrapped;
|
|
27
|
+
}
|
|
28
|
+
export function wrapAutoGenTools(veto, tools, options) {
|
|
29
|
+
if (Array.isArray(tools)) {
|
|
30
|
+
return tools.map((tool) => wrapAutoGenTool(veto, tool, options));
|
|
31
|
+
}
|
|
32
|
+
const wrapped = {};
|
|
33
|
+
for (const [key, tool] of Object.entries(tools)) {
|
|
34
|
+
wrapped[key] = wrapAutoGenTool(veto, tool.name ? tool : { ...tool, name: key }, options);
|
|
35
|
+
}
|
|
36
|
+
return wrapped;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/autogen/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,eAAe,GAIhB,MAAM,cAAc,CAAC;AA2BtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAOvD,MAAM,sBAAsB,GAAG,CAAC,MAAM,EAAE,SAAS,EAAE,KAAK,CAAU,CAAC;AAEnE,SAAS,kBAAkB,CAAC,IAAyB;IACnD,OAAO,eAAe,CAAC,IAAI,CAAC,SAAS,IAAI,IAAI,CAAC,IAAI,CAAC,CAAC;AACtD,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,oBAAoB,CACxC,IAAU,EACV,IAAyB,EACzB,OAA6B;IAE7B,OAAO,MAAM,oBAAoB,CAAC,IAAI,EAAE;QACtC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,kBAAkB,CAAC,IAAI,CAAC;KACpC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,mBAAmB,CACjC,IAAU,EACV,IAAY,EACZ,EAA0C,EAC1C,OAAyC;IAEzC,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,6BAA6B,CACjE,IAAI,EACJ,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,EAC1C,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,EACrD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,eAAe,CAK7B,IAAU,EACV,IAAW,EACX,OAAyC;IAEzC,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAW,CAAC;IACrC,MAAM,QAAQ,GAAG,OAAkC,CAAC;IAEpD,KAAK,MAAM,GAAG,IAAI,sBAAsB,EAAE,CAAC;QACzC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAY,CAAC;QAChC,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,GAAG,mBAAmB,CACjC,IAAI,EACJ,IAAI,CAAC,IAAI,EACT,EAA4C,EAC5C,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAYD,MAAM,UAAU,gBAAgB,CAC9B,IAAU,EACV,KAAkD,EAClD,OAAgC;IAEhC,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,eAAe,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IACnE,CAAC;IAED,MAAM,OAAO,GAAgC,EAAE,CAAC;IAChD,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,GAAG,eAAe,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAC3F,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import type { Veto } from '../../core/veto.js';
|
|
2
|
+
import type { ToolCall, ToolDefinition } from '../../types/tool.js';
|
|
3
|
+
import type { AnthropicTool, AnthropicToolUse } from '../../providers/types.js';
|
|
4
|
+
import { type RuntimeGuardDecision, type RuntimeGuardOptions } from '../shared.js';
|
|
5
|
+
export type ClaudeTool = AnthropicTool;
|
|
6
|
+
export type ClaudeToolUseBlock = AnthropicToolUse;
|
|
7
|
+
export type ClaudeToolHandler<TResult = unknown> = (input: Record<string, unknown>, toolUse: ClaudeToolUseBlock) => TResult | Promise<TResult>;
|
|
8
|
+
export interface ClaudeToolResultBlock {
|
|
9
|
+
type: 'tool_result';
|
|
10
|
+
tool_use_id: string;
|
|
11
|
+
content: unknown;
|
|
12
|
+
is_error?: boolean;
|
|
13
|
+
}
|
|
14
|
+
export interface VetoClaudeToolRunnerOptions extends RuntimeGuardOptions {
|
|
15
|
+
onBlocked?: (decision: RuntimeGuardDecision, toolUse: ClaudeToolUseBlock) => ClaudeToolResultBlock | Promise<ClaudeToolResultBlock>;
|
|
16
|
+
}
|
|
17
|
+
export { VetoRuntimeAdapterError } from '../shared.js';
|
|
18
|
+
export type { RuntimeGuardDecision, RuntimeGuardOptions } from '../shared.js';
|
|
19
|
+
export declare function toClaudeTool(tool: ToolDefinition): ClaudeTool;
|
|
20
|
+
export declare function toClaudeTools(tools: readonly ToolDefinition[]): ClaudeTool[];
|
|
21
|
+
export declare function fromClaudeToolUse(toolUse: ClaudeToolUseBlock): ToolCall;
|
|
22
|
+
export declare function guardClaudeToolUse(veto: Veto, toolUse: ClaudeToolUseBlock, options?: RuntimeGuardOptions): Promise<RuntimeGuardDecision>;
|
|
23
|
+
export declare function createVetoClaudeToolRunner(veto: Veto, handlers: Record<string, ClaudeToolHandler>, options?: VetoClaudeToolRunnerOptions): (toolUse: ClaudeToolUseBlock) => Promise<ClaudeToolResultBlock>;
|
|
24
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/claude-sdk/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAE,aAAa,EAAE,gBAAgB,EAAE,MAAM,0BAA0B,CAAC;AAEhF,OAAO,EAEL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,UAAU,GAAG,aAAa,CAAC;AACvC,MAAM,MAAM,kBAAkB,GAAG,gBAAgB,CAAC;AAClD,MAAM,MAAM,iBAAiB,CAAC,OAAO,GAAG,OAAO,IAAI,CACjD,KAAK,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC9B,OAAO,EAAE,kBAAkB,KACxB,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,aAAa,CAAC;IACpB,WAAW,EAAE,MAAM,CAAC;IACpB,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,OAAO,CAAC;CACpB;AAED,MAAM,WAAW,2BAA4B,SAAQ,mBAAmB;IACtE,SAAS,CAAC,EAAE,CACV,QAAQ,EAAE,oBAAoB,EAC9B,OAAO,EAAE,kBAAkB,KACxB,qBAAqB,GAAG,OAAO,CAAC,qBAAqB,CAAC,CAAC;CAC7D;AAED,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE9E,wBAAgB,YAAY,CAAC,IAAI,EAAE,cAAc,GAAG,UAAU,CAE7D;AAED,wBAAgB,aAAa,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,UAAU,EAAE,CAE5E;AAED,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,kBAAkB,GAAG,QAAQ,CAEvE;AAED,wBAAsB,kBAAkB,CACtC,IAAI,EAAE,IAAI,EACV,OAAO,EAAE,kBAAkB,EAC3B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAO/B;AAED,wBAAgB,0BAA0B,CACxC,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,iBAAiB,CAAC,EAC3C,OAAO,CAAC,EAAE,2BAA2B,GACpC,CAAC,OAAO,EAAE,kBAAkB,KAAK,OAAO,CAAC,qBAAqB,CAAC,CAgCjE"}
|
|
@@ -0,0 +1,52 @@
|
|
|
1
|
+
import { fromAnthropicToolUse, toAnthropic, toAnthropicTools } from '../../providers/adapters.js';
|
|
2
|
+
import { guardRuntimeToolCall, } from '../shared.js';
|
|
3
|
+
export { VetoRuntimeAdapterError } from '../shared.js';
|
|
4
|
+
export function toClaudeTool(tool) {
|
|
5
|
+
return toAnthropic(tool);
|
|
6
|
+
}
|
|
7
|
+
export function toClaudeTools(tools) {
|
|
8
|
+
return toAnthropicTools(tools);
|
|
9
|
+
}
|
|
10
|
+
export function fromClaudeToolUse(toolUse) {
|
|
11
|
+
return fromAnthropicToolUse(toolUse);
|
|
12
|
+
}
|
|
13
|
+
export async function guardClaudeToolUse(veto, toolUse, options) {
|
|
14
|
+
const call = fromAnthropicToolUse(toolUse);
|
|
15
|
+
return await guardRuntimeToolCall(veto, {
|
|
16
|
+
id: call.id,
|
|
17
|
+
name: call.name,
|
|
18
|
+
arguments: call.arguments,
|
|
19
|
+
}, options);
|
|
20
|
+
}
|
|
21
|
+
export function createVetoClaudeToolRunner(veto, handlers, options) {
|
|
22
|
+
return async (toolUse) => {
|
|
23
|
+
const decision = await guardClaudeToolUse(veto, toolUse, options);
|
|
24
|
+
if (!decision.allowed) {
|
|
25
|
+
if (options?.onBlocked) {
|
|
26
|
+
return await options.onBlocked(decision, toolUse);
|
|
27
|
+
}
|
|
28
|
+
return {
|
|
29
|
+
type: 'tool_result',
|
|
30
|
+
tool_use_id: toolUse.id,
|
|
31
|
+
content: decision.reason ?? 'Tool call blocked by Veto',
|
|
32
|
+
is_error: true,
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
const handler = handlers[toolUse.name];
|
|
36
|
+
if (!handler) {
|
|
37
|
+
return {
|
|
38
|
+
type: 'tool_result',
|
|
39
|
+
tool_use_id: toolUse.id,
|
|
40
|
+
content: `No handler registered for Claude tool ${toolUse.name}`,
|
|
41
|
+
is_error: true,
|
|
42
|
+
};
|
|
43
|
+
}
|
|
44
|
+
const content = await handler(toolUse.input, toolUse);
|
|
45
|
+
return {
|
|
46
|
+
type: 'tool_result',
|
|
47
|
+
tool_use_id: toolUse.id,
|
|
48
|
+
content,
|
|
49
|
+
};
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/claude-sdk/index.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,oBAAoB,EAAE,WAAW,EAAE,gBAAgB,EAAE,MAAM,6BAA6B,CAAC;AAClG,OAAO,EACL,oBAAoB,GAGrB,MAAM,cAAc,CAAC;AAuBtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAGvD,MAAM,UAAU,YAAY,CAAC,IAAoB;IAC/C,OAAO,WAAW,CAAC,IAAI,CAAC,CAAC;AAC3B,CAAC;AAED,MAAM,UAAU,aAAa,CAAC,KAAgC;IAC5D,OAAO,gBAAgB,CAAC,KAAK,CAAC,CAAC;AACjC,CAAC;AAED,MAAM,UAAU,iBAAiB,CAAC,OAA2B;IAC3D,OAAO,oBAAoB,CAAC,OAAO,CAAC,CAAC;AACvC,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,kBAAkB,CACtC,IAAU,EACV,OAA2B,EAC3B,OAA6B;IAE7B,MAAM,IAAI,GAAG,oBAAoB,CAAC,OAAO,CAAC,CAAC;IAC3C,OAAO,MAAM,oBAAoB,CAAC,IAAI,EAAE;QACtC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,0BAA0B,CACxC,IAAU,EACV,QAA2C,EAC3C,OAAqC;IAErC,OAAO,KAAK,EAAE,OAAO,EAAE,EAAE;QACvB,MAAM,QAAQ,GAAG,MAAM,kBAAkB,CAAC,IAAI,EAAE,OAAO,EAAE,OAAO,CAAC,CAAC;QAClE,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;gBACvB,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,OAAO,CAAC,CAAC;YACpD,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,OAAO,CAAC,EAAE;gBACvB,OAAO,EAAE,QAAQ,CAAC,MAAM,IAAI,2BAA2B;gBACvD,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,CAAC;QACvC,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,IAAI,EAAE,aAAa;gBACnB,WAAW,EAAE,OAAO,CAAC,EAAE;gBACvB,OAAO,EAAE,yCAAyC,OAAO,CAAC,IAAI,EAAE;gBAChE,QAAQ,EAAE,IAAI;aACf,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,MAAM,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,OAAO,CAAC,CAAC;QACtD,OAAO;YACL,IAAI,EAAE,aAAa;YACnB,WAAW,EAAE,OAAO,CAAC,EAAE;YACvB,OAAO;SACR,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,29 @@
|
|
|
1
|
+
import type { Veto } from '../../core/veto.js';
|
|
2
|
+
import { type GuardedRuntimeExecutionOptions, type RuntimeGuardDecision, type RuntimeGuardOptions } from '../shared.js';
|
|
3
|
+
export interface CrewAIToolCall {
|
|
4
|
+
name: string;
|
|
5
|
+
input?: unknown;
|
|
6
|
+
args?: unknown;
|
|
7
|
+
arguments?: unknown;
|
|
8
|
+
id?: string;
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
}
|
|
11
|
+
export type CrewAIToolFunction<TResult = unknown, TContext = unknown> = (args: Record<string, unknown>, context?: TContext) => TResult | Promise<TResult>;
|
|
12
|
+
export interface CrewAITool<TResult = unknown, TContext = unknown> {
|
|
13
|
+
name: string;
|
|
14
|
+
description?: string;
|
|
15
|
+
argsSchema?: unknown;
|
|
16
|
+
func?: CrewAIToolFunction<TResult, TContext>;
|
|
17
|
+
run?: CrewAIToolFunction<TResult, TContext>;
|
|
18
|
+
execute?: CrewAIToolFunction<TResult, TContext>;
|
|
19
|
+
[key: string]: unknown;
|
|
20
|
+
}
|
|
21
|
+
export type VetoCrewAIToolOptions<TResult = unknown> = GuardedRuntimeExecutionOptions<TResult>;
|
|
22
|
+
export { VetoRuntimeAdapterError } from '../shared.js';
|
|
23
|
+
export type { GuardedRuntimeExecutionOptions, RuntimeGuardDecision, RuntimeGuardOptions, } from '../shared.js';
|
|
24
|
+
export declare function guardCrewAIToolCall(veto: Veto, call: CrewAIToolCall, options?: RuntimeGuardOptions): Promise<RuntimeGuardDecision>;
|
|
25
|
+
export declare function wrapCrewAIFunction<TResult, TContext = unknown>(veto: Veto, name: string, fn: CrewAIToolFunction<TResult, TContext>, options?: VetoCrewAIToolOptions<TResult>): CrewAIToolFunction<TResult, TContext>;
|
|
26
|
+
export declare function wrapCrewAITool<TResult, TContext, TTool extends CrewAITool<TResult, TContext>>(veto: Veto, tool: TTool, options?: VetoCrewAIToolOptions<TResult>): TTool;
|
|
27
|
+
export declare function wrapCrewAITools<TTool extends CrewAITool>(veto: Veto, tools: TTool[], options?: VetoCrewAIToolOptions): TTool[];
|
|
28
|
+
export declare function wrapCrewAITools<TTools extends Record<string, CrewAITool>>(veto: Veto, tools: TTools, options?: VetoCrewAIToolOptions): TTools;
|
|
29
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/crewai/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAIL,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,cAAc;IAC7B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,SAAS,CAAC,EAAE,OAAO,CAAC;IACpB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,kBAAkB,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO,IAAI,CACtE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,OAAO,CAAC,EAAE,QAAQ,KACf,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,WAAW,UAAU,CAAC,OAAO,GAAG,OAAO,EAAE,QAAQ,GAAG,OAAO;IAC/D,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,IAAI,CAAC,EAAE,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC7C,GAAG,CAAC,EAAE,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAC5C,OAAO,CAAC,EAAE,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAAC;IAChD,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,qBAAqB,CAAC,OAAO,GAAG,OAAO,IAAI,8BAA8B,CAAC,OAAO,CAAC,CAAC;AAE/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EACV,8BAA8B,EAC9B,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAQtB,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,cAAc,EACpB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAM/B;AAED,wBAAgB,kBAAkB,CAAC,OAAO,EAAE,QAAQ,GAAG,OAAO,EAC5D,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,MAAM,EACZ,EAAE,EAAE,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,EACzC,OAAO,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,GACvC,kBAAkB,CAAC,OAAO,EAAE,QAAQ,CAAC,CAOvC;AAED,wBAAgB,cAAc,CAC5B,OAAO,EACP,QAAQ,EACR,KAAK,SAAS,UAAU,CAAC,OAAO,EAAE,QAAQ,CAAC,EAE3C,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,GACvC,KAAK,CAiBP;AAED,wBAAgB,eAAe,CAAC,KAAK,SAAS,UAAU,EACtD,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EAAE,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,KAAK,EAAE,CAAC;AACX,wBAAgB,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACvE,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,CAAC"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import { executeGuardedRuntimeToolCall, guardRuntimeToolCall, parseJsonObject, } from '../shared.js';
|
|
2
|
+
export { VetoRuntimeAdapterError } from '../shared.js';
|
|
3
|
+
const CREW_AI_FUNCTION_KEYS = ['func', 'run', 'execute'];
|
|
4
|
+
function resolveCrewAIArgs(call) {
|
|
5
|
+
return parseJsonObject(call.input ?? call.args ?? call.arguments);
|
|
6
|
+
}
|
|
7
|
+
export async function guardCrewAIToolCall(veto, call, options) {
|
|
8
|
+
return await guardRuntimeToolCall(veto, {
|
|
9
|
+
id: call.id,
|
|
10
|
+
name: call.name,
|
|
11
|
+
arguments: resolveCrewAIArgs(call),
|
|
12
|
+
}, options);
|
|
13
|
+
}
|
|
14
|
+
export function wrapCrewAIFunction(veto, name, fn, options) {
|
|
15
|
+
return async (args, context) => await executeGuardedRuntimeToolCall(veto, { name, arguments: parseJsonObject(args) }, async (guardedArgs) => await fn(guardedArgs, context), options);
|
|
16
|
+
}
|
|
17
|
+
export function wrapCrewAITool(veto, tool, options) {
|
|
18
|
+
const wrapped = { ...tool };
|
|
19
|
+
const writable = wrapped;
|
|
20
|
+
for (const key of CREW_AI_FUNCTION_KEYS) {
|
|
21
|
+
const fn = tool[key];
|
|
22
|
+
if (typeof fn === 'function') {
|
|
23
|
+
writable[key] = wrapCrewAIFunction(veto, tool.name, fn, options);
|
|
24
|
+
}
|
|
25
|
+
}
|
|
26
|
+
return wrapped;
|
|
27
|
+
}
|
|
28
|
+
export function wrapCrewAITools(veto, tools, options) {
|
|
29
|
+
if (Array.isArray(tools)) {
|
|
30
|
+
return tools.map((tool) => wrapCrewAITool(veto, tool, options));
|
|
31
|
+
}
|
|
32
|
+
const wrapped = {};
|
|
33
|
+
for (const [key, tool] of Object.entries(tools)) {
|
|
34
|
+
wrapped[key] = wrapCrewAITool(veto, tool.name ? tool : { ...tool, name: key }, options);
|
|
35
|
+
}
|
|
36
|
+
return wrapped;
|
|
37
|
+
}
|
|
38
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/crewai/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,6BAA6B,EAC7B,oBAAoB,EACpB,eAAe,GAIhB,MAAM,cAAc,CAAC;AA4BtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAOvD,MAAM,qBAAqB,GAAG,CAAC,MAAM,EAAE,KAAK,EAAE,SAAS,CAAU,CAAC;AAElE,SAAS,iBAAiB,CAAC,IAAoB;IAC7C,OAAO,eAAe,CAAC,IAAI,CAAC,KAAK,IAAI,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,SAAS,CAAC,CAAC;AACpE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAU,EACV,IAAoB,EACpB,OAA6B;IAE7B,OAAO,MAAM,oBAAoB,CAAC,IAAI,EAAE;QACtC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,iBAAiB,CAAC,IAAI,CAAC;KACnC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,kBAAkB,CAChC,IAAU,EACV,IAAY,EACZ,EAAyC,EACzC,OAAwC;IAExC,OAAO,KAAK,EAAE,IAAI,EAAE,OAAO,EAAE,EAAE,CAAC,MAAM,6BAA6B,CACjE,IAAI,EACJ,EAAE,IAAI,EAAE,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,EAAE,EAC1C,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,MAAM,EAAE,CAAC,WAAW,EAAE,OAAO,CAAC,EACrD,OAAO,CACR,CAAC;AACJ,CAAC;AAED,MAAM,UAAU,cAAc,CAK5B,IAAU,EACV,IAAW,EACX,OAAwC;IAExC,MAAM,OAAO,GAAG,EAAE,GAAG,IAAI,EAAW,CAAC;IACrC,MAAM,QAAQ,GAAG,OAAkC,CAAC;IAEpD,KAAK,MAAM,GAAG,IAAI,qBAAqB,EAAE,CAAC;QACxC,MAAM,EAAE,GAAG,IAAI,CAAC,GAAG,CAAY,CAAC;QAChC,IAAI,OAAO,EAAE,KAAK,UAAU,EAAE,CAAC;YAC7B,QAAQ,CAAC,GAAG,CAAC,GAAG,kBAAkB,CAChC,IAAI,EACJ,IAAI,CAAC,IAAI,EACT,EAA2C,EAC3C,OAAO,CACR,CAAC;QACJ,CAAC;IACH,CAAC;IAED,OAAO,OAAO,CAAC;AACjB,CAAC;AAYD,MAAM,UAAU,eAAe,CAC7B,IAAU,EACV,KAAgD,EAChD,OAA+B;IAE/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,OAAO,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,EAAE,OAAO,CAAC,CAAC;IAC1F,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import type { Veto } from '../../core/veto.js';
|
|
2
|
+
import type { ToolCall, ToolDefinition } from '../../types/tool.js';
|
|
3
|
+
import type { GoogleFunctionDeclaration, GoogleTool } from '../../providers/types.js';
|
|
4
|
+
import { type RuntimeGuardDecision, type RuntimeGuardOptions } from '../shared.js';
|
|
5
|
+
export type GoogleADKFunctionDeclaration = GoogleFunctionDeclaration;
|
|
6
|
+
export type GoogleADKTool = GoogleTool;
|
|
7
|
+
export interface GoogleADKFunctionCall {
|
|
8
|
+
name: string;
|
|
9
|
+
args?: Record<string, unknown>;
|
|
10
|
+
id?: string;
|
|
11
|
+
[key: string]: unknown;
|
|
12
|
+
}
|
|
13
|
+
export type GoogleADKFunctionHandler<TResult = unknown> = (args: Record<string, unknown>, functionCall: GoogleADKFunctionCall) => TResult | Promise<TResult>;
|
|
14
|
+
export interface GoogleADKFunctionResponse {
|
|
15
|
+
name: string;
|
|
16
|
+
response: unknown;
|
|
17
|
+
id?: string;
|
|
18
|
+
error?: boolean;
|
|
19
|
+
}
|
|
20
|
+
export interface VetoGoogleADKFunctionRunnerOptions extends RuntimeGuardOptions {
|
|
21
|
+
onBlocked?: (decision: RuntimeGuardDecision, functionCall: GoogleADKFunctionCall) => GoogleADKFunctionResponse | Promise<GoogleADKFunctionResponse>;
|
|
22
|
+
}
|
|
23
|
+
export { VetoRuntimeAdapterError } from '../shared.js';
|
|
24
|
+
export type { RuntimeGuardDecision, RuntimeGuardOptions } from '../shared.js';
|
|
25
|
+
export declare function toGoogleADKFunctionDeclaration(tool: ToolDefinition): GoogleADKFunctionDeclaration;
|
|
26
|
+
export declare function toGoogleADKFunctionDeclarations(tools: readonly ToolDefinition[]): GoogleADKFunctionDeclaration[];
|
|
27
|
+
export declare function toGoogleADKTool(tools: readonly ToolDefinition[]): GoogleADKTool;
|
|
28
|
+
export declare function fromGoogleADKFunctionCall(functionCall: GoogleADKFunctionCall): ToolCall;
|
|
29
|
+
export declare function guardGoogleADKFunctionCall(veto: Veto, functionCall: GoogleADKFunctionCall, options?: RuntimeGuardOptions): Promise<RuntimeGuardDecision>;
|
|
30
|
+
export declare function createVetoGoogleADKFunctionRunner(veto: Veto, handlers: Record<string, GoogleADKFunctionHandler>, options?: VetoGoogleADKFunctionRunnerOptions): (functionCall: GoogleADKFunctionCall) => Promise<GoogleADKFunctionResponse>;
|
|
31
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/google-adk/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,KAAK,EAAE,QAAQ,EAAE,cAAc,EAAE,MAAM,qBAAqB,CAAC;AACpE,OAAO,KAAK,EAAsB,yBAAyB,EAAE,UAAU,EAAE,MAAM,0BAA0B,CAAC;AAM1G,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,MAAM,MAAM,4BAA4B,GAAG,yBAAyB,CAAC;AACrE,MAAM,MAAM,aAAa,GAAG,UAAU,CAAC;AAEvC,MAAM,WAAW,qBAAqB;IACpC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,wBAAwB,CAAC,OAAO,GAAG,OAAO,IAAI,CACxD,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,YAAY,EAAE,qBAAqB,KAChC,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;AAEhC,MAAM,WAAW,yBAAyB;IACxC,IAAI,EAAE,MAAM,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,OAAO,CAAC;CACjB;AAED,MAAM,WAAW,kCAAmC,SAAQ,mBAAmB;IAC7E,SAAS,CAAC,EAAE,CACV,QAAQ,EAAE,oBAAoB,EAC9B,YAAY,EAAE,qBAAqB,KAChC,yBAAyB,GAAG,OAAO,CAAC,yBAAyB,CAAC,CAAC;CACrE;AAED,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,mBAAmB,EAAE,MAAM,cAAc,CAAC;AAE9E,wBAAgB,8BAA8B,CAC5C,IAAI,EAAE,cAAc,GACnB,4BAA4B,CAE9B;AAED,wBAAgB,+BAA+B,CAC7C,KAAK,EAAE,SAAS,cAAc,EAAE,GAC/B,4BAA4B,EAAE,CAEhC;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,SAAS,cAAc,EAAE,GAAG,aAAa,CAE/E;AAED,wBAAgB,yBAAyB,CAAC,YAAY,EAAE,qBAAqB,GAAG,QAAQ,CAMvF;AAED,wBAAsB,0BAA0B,CAC9C,IAAI,EAAE,IAAI,EACV,YAAY,EAAE,qBAAqB,EACnC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAO/B;AAED,wBAAgB,iCAAiC,CAC/C,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,MAAM,CAAC,MAAM,EAAE,wBAAwB,CAAC,EAClD,OAAO,CAAC,EAAE,kCAAkC,GAC3C,CAAC,YAAY,EAAE,qBAAqB,KAAK,OAAO,CAAC,yBAAyB,CAAC,CAgC7E"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { fromGoogleFunctionCall, toGoogleFunctionDeclaration, toGoogleTool, } from '../../providers/adapters.js';
|
|
2
|
+
import { asRecord, guardRuntimeToolCall, } from '../shared.js';
|
|
3
|
+
export { VetoRuntimeAdapterError } from '../shared.js';
|
|
4
|
+
export function toGoogleADKFunctionDeclaration(tool) {
|
|
5
|
+
return toGoogleFunctionDeclaration(tool);
|
|
6
|
+
}
|
|
7
|
+
export function toGoogleADKFunctionDeclarations(tools) {
|
|
8
|
+
return tools.map(toGoogleFunctionDeclaration);
|
|
9
|
+
}
|
|
10
|
+
export function toGoogleADKTool(tools) {
|
|
11
|
+
return toGoogleTool(tools);
|
|
12
|
+
}
|
|
13
|
+
export function fromGoogleADKFunctionCall(functionCall) {
|
|
14
|
+
const call = fromGoogleFunctionCall({
|
|
15
|
+
name: functionCall.name,
|
|
16
|
+
args: asRecord(functionCall.args),
|
|
17
|
+
});
|
|
18
|
+
return functionCall.id ? { ...call, id: functionCall.id } : call;
|
|
19
|
+
}
|
|
20
|
+
export async function guardGoogleADKFunctionCall(veto, functionCall, options) {
|
|
21
|
+
const call = fromGoogleADKFunctionCall(functionCall);
|
|
22
|
+
return await guardRuntimeToolCall(veto, {
|
|
23
|
+
id: call.id,
|
|
24
|
+
name: call.name,
|
|
25
|
+
arguments: call.arguments,
|
|
26
|
+
}, options);
|
|
27
|
+
}
|
|
28
|
+
export function createVetoGoogleADKFunctionRunner(veto, handlers, options) {
|
|
29
|
+
return async (functionCall) => {
|
|
30
|
+
const args = asRecord(functionCall.args);
|
|
31
|
+
const decision = await guardGoogleADKFunctionCall(veto, functionCall, options);
|
|
32
|
+
if (!decision.allowed) {
|
|
33
|
+
if (options?.onBlocked) {
|
|
34
|
+
return await options.onBlocked(decision, functionCall);
|
|
35
|
+
}
|
|
36
|
+
return {
|
|
37
|
+
name: functionCall.name,
|
|
38
|
+
id: functionCall.id,
|
|
39
|
+
response: decision.reason ?? 'Tool call blocked by Veto',
|
|
40
|
+
error: true,
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
const handler = handlers[functionCall.name];
|
|
44
|
+
if (!handler) {
|
|
45
|
+
return {
|
|
46
|
+
name: functionCall.name,
|
|
47
|
+
id: functionCall.id,
|
|
48
|
+
response: `No handler registered for Google ADK function ${functionCall.name}`,
|
|
49
|
+
error: true,
|
|
50
|
+
};
|
|
51
|
+
}
|
|
52
|
+
return {
|
|
53
|
+
name: functionCall.name,
|
|
54
|
+
id: functionCall.id,
|
|
55
|
+
response: await handler(args, functionCall),
|
|
56
|
+
};
|
|
57
|
+
};
|
|
58
|
+
}
|
|
59
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/google-adk/index.ts"],"names":[],"mappings":"AAGA,OAAO,EACL,sBAAsB,EACtB,2BAA2B,EAC3B,YAAY,GACb,MAAM,6BAA6B,CAAC;AACrC,OAAO,EACL,QAAQ,EACR,oBAAoB,GAGrB,MAAM,cAAc,CAAC;AA+BtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAGvD,MAAM,UAAU,8BAA8B,CAC5C,IAAoB;IAEpB,OAAO,2BAA2B,CAAC,IAAI,CAAC,CAAC;AAC3C,CAAC;AAED,MAAM,UAAU,+BAA+B,CAC7C,KAAgC;IAEhC,OAAO,KAAK,CAAC,GAAG,CAAC,2BAA2B,CAAC,CAAC;AAChD,CAAC;AAED,MAAM,UAAU,eAAe,CAAC,KAAgC;IAC9D,OAAO,YAAY,CAAC,KAAK,CAAC,CAAC;AAC7B,CAAC;AAED,MAAM,UAAU,yBAAyB,CAAC,YAAmC;IAC3E,MAAM,IAAI,GAAG,sBAAsB,CAAC;QAClC,IAAI,EAAE,YAAY,CAAC,IAAI;QACvB,IAAI,EAAE,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC;KACL,CAAC,CAAC;IAChC,OAAO,YAAY,CAAC,EAAE,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,EAAE,EAAE,YAAY,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC;AACnE,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,0BAA0B,CAC9C,IAAU,EACV,YAAmC,EACnC,OAA6B;IAE7B,MAAM,IAAI,GAAG,yBAAyB,CAAC,YAAY,CAAC,CAAC;IACrD,OAAO,MAAM,oBAAoB,CAAC,IAAI,EAAE;QACtC,EAAE,EAAE,IAAI,CAAC,EAAE;QACX,IAAI,EAAE,IAAI,CAAC,IAAI;QACf,SAAS,EAAE,IAAI,CAAC,SAAS;KAC1B,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,iCAAiC,CAC/C,IAAU,EACV,QAAkD,EAClD,OAA4C;IAE5C,OAAO,KAAK,EAAE,YAAY,EAAE,EAAE;QAC5B,MAAM,IAAI,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QACzC,MAAM,QAAQ,GAAG,MAAM,0BAA0B,CAAC,IAAI,EAAE,YAAY,EAAE,OAAO,CAAC,CAAC;QAC/E,IAAI,CAAC,QAAQ,CAAC,OAAO,EAAE,CAAC;YACtB,IAAI,OAAO,EAAE,SAAS,EAAE,CAAC;gBACvB,OAAO,MAAM,OAAO,CAAC,SAAS,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;YACzD,CAAC;YACD,OAAO;gBACL,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,EAAE,EAAE,YAAY,CAAC,EAAE;gBACnB,QAAQ,EAAE,QAAQ,CAAC,MAAM,IAAI,2BAA2B;gBACxD,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;QAED,MAAM,OAAO,GAAG,QAAQ,CAAC,YAAY,CAAC,IAAI,CAAC,CAAC;QAC5C,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO;gBACL,IAAI,EAAE,YAAY,CAAC,IAAI;gBACvB,EAAE,EAAE,YAAY,CAAC,EAAE;gBACnB,QAAQ,EAAE,iDAAiD,YAAY,CAAC,IAAI,EAAE;gBAC9E,KAAK,EAAE,IAAI;aACZ,CAAC;QACJ,CAAC;QAED,OAAO;YACL,IAAI,EAAE,YAAY,CAAC,IAAI;YACvB,EAAE,EAAE,YAAY,CAAC,EAAE;YACnB,QAAQ,EAAE,MAAM,OAAO,CAAC,IAAI,EAAE,YAAY,CAAC;SAC5C,CAAC;IACJ,CAAC,CAAC;AACJ,CAAC"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import type { Veto } from '../../core/veto.js';
|
|
2
|
+
import { type RuntimeGuardDecision, type RuntimeGuardOptions } from '../shared.js';
|
|
3
|
+
export interface LangChainGuardToolCall {
|
|
4
|
+
name: string;
|
|
5
|
+
args?: Record<string, unknown>;
|
|
6
|
+
id?: string;
|
|
7
|
+
type?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare function guardLangChainToolCall(veto: Veto, toolCall: LangChainGuardToolCall, options?: RuntimeGuardOptions): Promise<RuntimeGuardDecision>;
|
|
10
|
+
//# sourceMappingURL=guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/integrations/langchain/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,sBAAsB;IACrC,IAAI,EAAE,MAAM,CAAC;IACb,IAAI,CAAC,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IAC/B,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;CACf;AAED,wBAAsB,sBAAsB,CAC1C,IAAI,EAAE,IAAI,EACV,QAAQ,EAAE,sBAAsB,EAChC,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAM/B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { asRecord, guardRuntimeToolCall, } from '../shared.js';
|
|
2
|
+
export async function guardLangChainToolCall(veto, toolCall, options) {
|
|
3
|
+
return await guardRuntimeToolCall(veto, {
|
|
4
|
+
id: toolCall.id,
|
|
5
|
+
name: toolCall.name,
|
|
6
|
+
arguments: asRecord(toolCall.args),
|
|
7
|
+
}, options);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/integrations/langchain/guard.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,oBAAoB,GAGrB,MAAM,cAAc,CAAC;AAStB,MAAM,CAAC,KAAK,UAAU,sBAAsB,CAC1C,IAAU,EACV,QAAgC,EAChC,OAA6B;IAE7B,OAAO,MAAM,oBAAoB,CAAC,IAAI,EAAE;QACtC,EAAE,EAAE,QAAQ,CAAC,EAAE;QACf,IAAI,EAAE,QAAQ,CAAC,IAAI;QACnB,SAAS,EAAE,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC;KACnC,EAAE,OAAO,CAAC,CAAC;AACd,CAAC"}
|
|
@@ -4,4 +4,6 @@ export { createVetoToolNode } from './tool-node.js';
|
|
|
4
4
|
export type { VetoToolNodeOptions } from './tool-node.js';
|
|
5
5
|
export { createVetoCallbackHandler } from './callback.js';
|
|
6
6
|
export type { VetoCallbackOptions } from './callback.js';
|
|
7
|
+
export { guardLangChainToolCall } from './guard.js';
|
|
8
|
+
export type { LangChainGuardToolCall } from './guard.js';
|
|
7
9
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/langchain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,YAAY,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/langchain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAChE,YAAY,EAAE,8BAA8B,EAAE,MAAM,iBAAiB,CAAC;AACtE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AACpD,YAAY,EAAE,mBAAmB,EAAE,MAAM,gBAAgB,CAAC;AAC1D,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAC1D,YAAY,EAAE,mBAAmB,EAAE,MAAM,eAAe,CAAC;AACzD,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC;AACpD,YAAY,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/langchain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/langchain/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,6BAA6B,EAAE,MAAM,iBAAiB,CAAC;AAEhE,OAAO,EAAE,kBAAkB,EAAE,MAAM,gBAAgB,CAAC;AAEpD,OAAO,EAAE,yBAAyB,EAAE,MAAM,eAAe,CAAC;AAE1D,OAAO,EAAE,sBAAsB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { Veto } from '../../core/veto.js';
|
|
2
|
+
import { type GuardedRuntimeExecutionOptions, type RuntimeGuardDecision, type RuntimeGuardOptions } from '../shared.js';
|
|
3
|
+
export interface MastraTool<TArgs = unknown, TResult = unknown, TContext = unknown> {
|
|
4
|
+
id?: string;
|
|
5
|
+
name?: string;
|
|
6
|
+
description?: string;
|
|
7
|
+
inputSchema?: unknown;
|
|
8
|
+
execute: (args: TArgs, context?: TContext) => TResult | Promise<TResult>;
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
}
|
|
11
|
+
export type MastraToolRef = string | {
|
|
12
|
+
id?: string;
|
|
13
|
+
name?: string;
|
|
14
|
+
};
|
|
15
|
+
export type VetoMastraToolOptions<TResult = unknown> = GuardedRuntimeExecutionOptions<TResult>;
|
|
16
|
+
export { VetoRuntimeAdapterError } from '../shared.js';
|
|
17
|
+
export type { GuardedRuntimeExecutionOptions, RuntimeGuardDecision, RuntimeGuardOptions, } from '../shared.js';
|
|
18
|
+
export declare function guardMastraToolCall(veto: Veto, tool: MastraToolRef, args: unknown, options?: RuntimeGuardOptions): Promise<RuntimeGuardDecision>;
|
|
19
|
+
export declare function wrapMastraTool<TArgs, TResult, TContext, TTool extends MastraTool<TArgs, TResult, TContext>>(veto: Veto, tool: TTool, options?: VetoMastraToolOptions<TResult>): TTool;
|
|
20
|
+
export declare function wrapMastraTools<TTool extends MastraTool>(veto: Veto, tools: TTool[], options?: VetoMastraToolOptions): TTool[];
|
|
21
|
+
export declare function wrapMastraTools<TTools extends Record<string, MastraTool>>(veto: Veto, tools: TTools, options?: VetoMastraToolOptions): TTools;
|
|
22
|
+
//# sourceMappingURL=index.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/mastra/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAIL,KAAK,8BAA8B,EACnC,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,UAAU,CACzB,KAAK,GAAG,OAAO,EACf,OAAO,GAAG,OAAO,EACjB,QAAQ,GAAG,OAAO;IAElB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,OAAO,EAAE,CAAC,IAAI,EAAE,KAAK,EAAE,OAAO,CAAC,EAAE,QAAQ,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;IACzE,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,MAAM,MAAM,aAAa,GAAG,MAAM,GAAG;IAAE,EAAE,CAAC,EAAE,MAAM,CAAC;IAAC,IAAI,CAAC,EAAE,MAAM,CAAA;CAAE,CAAC;AACpE,MAAM,MAAM,qBAAqB,CAAC,OAAO,GAAG,OAAO,IAAI,8BAA8B,CAAC,OAAO,CAAC,CAAC;AAE/F,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AACvD,YAAY,EACV,8BAA8B,EAC9B,oBAAoB,EACpB,mBAAmB,GACpB,MAAM,cAAc,CAAC;AAWtB,wBAAsB,mBAAmB,CACvC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,aAAa,EACnB,IAAI,EAAE,OAAO,EACb,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAK/B;AAED,wBAAgB,cAAc,CAC5B,KAAK,EACL,OAAO,EACP,QAAQ,EACR,KAAK,SAAS,UAAU,CAAC,KAAK,EAAE,OAAO,EAAE,QAAQ,CAAC,EAElD,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,KAAK,EACX,OAAO,CAAC,EAAE,qBAAqB,CAAC,OAAO,CAAC,GACvC,KAAK,CAcP;AAED,wBAAgB,eAAe,CAAC,KAAK,SAAS,UAAU,EACtD,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,KAAK,EAAE,EACd,OAAO,CAAC,EAAE,qBAAqB,GAC9B,KAAK,EAAE,CAAC;AACX,wBAAgB,eAAe,CAAC,MAAM,SAAS,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,EACvE,IAAI,EAAE,IAAI,EACV,KAAK,EAAE,MAAM,EACb,OAAO,CAAC,EAAE,qBAAqB,GAC9B,MAAM,CAAC"}
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { asRecord, executeGuardedRuntimeToolCall, guardRuntimeToolCall, } from '../shared.js';
|
|
2
|
+
export { VetoRuntimeAdapterError } from '../shared.js';
|
|
3
|
+
function resolveMastraToolName(tool) {
|
|
4
|
+
if (typeof tool === 'string' && tool.length > 0)
|
|
5
|
+
return tool;
|
|
6
|
+
if (typeof tool === 'object') {
|
|
7
|
+
if (typeof tool.name === 'string' && tool.name.length > 0)
|
|
8
|
+
return tool.name;
|
|
9
|
+
if (typeof tool.id === 'string' && tool.id.length > 0)
|
|
10
|
+
return tool.id;
|
|
11
|
+
}
|
|
12
|
+
throw new Error('Mastra tool must include a name or id');
|
|
13
|
+
}
|
|
14
|
+
export async function guardMastraToolCall(veto, tool, args, options) {
|
|
15
|
+
return await guardRuntimeToolCall(veto, {
|
|
16
|
+
name: resolveMastraToolName(tool),
|
|
17
|
+
arguments: asRecord(args),
|
|
18
|
+
}, options);
|
|
19
|
+
}
|
|
20
|
+
export function wrapMastraTool(veto, tool, options) {
|
|
21
|
+
const toolName = resolveMastraToolName(tool);
|
|
22
|
+
const originalExecute = tool.execute;
|
|
23
|
+
const wrapped = Object.create(Object.getPrototypeOf(tool));
|
|
24
|
+
Object.assign(wrapped, tool);
|
|
25
|
+
wrapped.execute = (async (args, context) => {
|
|
26
|
+
return await executeGuardedRuntimeToolCall(veto, { name: toolName, arguments: asRecord(args) }, async (guardedArgs) => await originalExecute.call(tool, guardedArgs, context), options);
|
|
27
|
+
});
|
|
28
|
+
return wrapped;
|
|
29
|
+
}
|
|
30
|
+
export function wrapMastraTools(veto, tools, options) {
|
|
31
|
+
if (Array.isArray(tools)) {
|
|
32
|
+
return tools.map((tool) => wrapMastraTool(veto, tool, options));
|
|
33
|
+
}
|
|
34
|
+
const wrapped = {};
|
|
35
|
+
for (const [key, tool] of Object.entries(tools)) {
|
|
36
|
+
const namedTool = tool.name || tool.id ? tool : { ...tool, name: key };
|
|
37
|
+
wrapped[key] = wrapMastraTool(veto, namedTool, options);
|
|
38
|
+
}
|
|
39
|
+
return wrapped;
|
|
40
|
+
}
|
|
41
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/mastra/index.ts"],"names":[],"mappings":"AACA,OAAO,EACL,QAAQ,EACR,6BAA6B,EAC7B,oBAAoB,GAIrB,MAAM,cAAc,CAAC;AAkBtB,OAAO,EAAE,uBAAuB,EAAE,MAAM,cAAc,CAAC;AAOvD,SAAS,qBAAqB,CAAC,IAAmB;IAChD,IAAI,OAAO,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,MAAM,GAAG,CAAC;QAAE,OAAO,IAAI,CAAC;IAC7D,IAAI,OAAO,IAAI,KAAK,QAAQ,EAAE,CAAC;QAC7B,IAAI,OAAO,IAAI,CAAC,IAAI,KAAK,QAAQ,IAAI,IAAI,CAAC,IAAI,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,IAAI,CAAC;QAC5E,IAAI,OAAO,IAAI,CAAC,EAAE,KAAK,QAAQ,IAAI,IAAI,CAAC,EAAE,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,IAAI,CAAC,EAAE,CAAC;IACxE,CAAC;IACD,MAAM,IAAI,KAAK,CAAC,uCAAuC,CAAC,CAAC;AAC3D,CAAC;AAED,MAAM,CAAC,KAAK,UAAU,mBAAmB,CACvC,IAAU,EACV,IAAmB,EACnB,IAAa,EACb,OAA6B;IAE7B,OAAO,MAAM,oBAAoB,CAAC,IAAI,EAAE;QACtC,IAAI,EAAE,qBAAqB,CAAC,IAAI,CAAC;QACjC,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC;KAC1B,EAAE,OAAO,CAAC,CAAC;AACd,CAAC;AAED,MAAM,UAAU,cAAc,CAM5B,IAAU,EACV,IAAW,EACX,OAAwC;IAExC,MAAM,QAAQ,GAAG,qBAAqB,CAAC,IAAI,CAAC,CAAC;IAC7C,MAAM,eAAe,GAAG,IAAI,CAAC,OAAO,CAAC;IACrC,MAAM,OAAO,GAAG,MAAM,CAAC,MAAM,CAAC,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAU,CAAC;IACpE,MAAM,CAAC,MAAM,CAAC,OAAO,EAAE,IAAI,CAAC,CAAC;IAC7B,OAAO,CAAC,OAAO,GAAG,CAAC,KAAK,EAAE,IAAW,EAAE,OAAkB,EAAoB,EAAE;QAC7E,OAAO,MAAM,6BAA6B,CACxC,IAAI,EACJ,EAAE,IAAI,EAAE,QAAQ,EAAE,SAAS,EAAE,QAAQ,CAAC,IAAI,CAAC,EAAE,EAC7C,KAAK,EAAE,WAAW,EAAE,EAAE,CAAC,MAAM,eAAe,CAAC,IAAI,CAAC,IAAI,EAAE,WAAoB,EAAE,OAAO,CAAC,EACtF,OAAO,CACR,CAAC;IACJ,CAAC,CAAqB,CAAC;IACvB,OAAO,OAAO,CAAC;AACjB,CAAC;AAYD,MAAM,UAAU,eAAe,CAC7B,IAAU,EACV,KAAgD,EAChD,OAA+B;IAE/B,IAAI,KAAK,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QACzB,OAAO,KAAK,CAAC,GAAG,CAAC,CAAC,IAAI,EAAE,EAAE,CAAC,cAAc,CAAC,IAAI,EAAE,IAAI,EAAE,OAAO,CAAC,CAAC,CAAC;IAClE,CAAC;IAED,MAAM,OAAO,GAA+B,EAAE,CAAC;IAC/C,KAAK,MAAM,CAAC,GAAG,EAAE,IAAI,CAAC,IAAI,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,EAAE,CAAC;QAChD,MAAM,SAAS,GAAG,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,GAAG,IAAI,EAAE,IAAI,EAAE,GAAG,EAAE,CAAC;QACvE,OAAO,CAAC,GAAG,CAAC,GAAG,cAAc,CAAC,IAAI,EAAE,SAAS,EAAE,OAAO,CAAC,CAAC;IAC1D,CAAC;IACD,OAAO,OAAO,CAAC;AACjB,CAAC"}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
import type { Veto } from '../../core/veto.js';
|
|
2
|
+
import { type RuntimeGuardDecision, type RuntimeGuardOptions } from '../shared.js';
|
|
2
3
|
export interface GuardrailFunctionOutput {
|
|
3
4
|
tripwireTriggered: boolean;
|
|
4
5
|
outputInfo?: {
|
|
@@ -71,4 +72,7 @@ export declare function createVetoOutputGuardrail<TContext = unknown, TAgent = u
|
|
|
71
72
|
* Create OpenAI Agents-compatible tool input/output guardrails backed by Veto.
|
|
72
73
|
*/
|
|
73
74
|
export declare function createVetoToolGuardrails(veto: Veto, name?: string): [ToolInputGuardrail, ToolOutputGuardrail];
|
|
75
|
+
export type OpenAIAgentsToolGuardInput = ToolGuardrailContext | ToolInputGuardrailData;
|
|
76
|
+
export type { RuntimeGuardDecision, RuntimeGuardOptions } from '../shared.js';
|
|
77
|
+
export declare function guardOpenAIAgentsToolCall(veto: Veto, input: OpenAIAgentsToolGuardInput, options?: RuntimeGuardOptions): Promise<RuntimeGuardDecision>;
|
|
74
78
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/openai-agents/index.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/openai-agents/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,3 +1,4 @@
|
|
|
1
|
+
import { guardRuntimeToolCall, } from '../shared.js';
|
|
1
2
|
function allowToolGuardrail() {
|
|
2
3
|
return {
|
|
3
4
|
behavior: { type: 'allow' },
|
|
@@ -96,7 +97,7 @@ export function createVetoToolGuardrails(veto, name) {
|
|
|
96
97
|
const toolName = resolveToolName(data.context);
|
|
97
98
|
const args = parseToolArguments(resolveToolArguments(data.context));
|
|
98
99
|
const result = await veto.guard(toolName, args);
|
|
99
|
-
if (result.decision
|
|
100
|
+
if (result.decision !== 'allow' && result.shadow !== true) {
|
|
100
101
|
return rejectToolGuardrail(result.reason ?? 'Policy violation');
|
|
101
102
|
}
|
|
102
103
|
return allowToolGuardrail();
|
|
@@ -122,4 +123,13 @@ export function createVetoToolGuardrails(veto, name) {
|
|
|
122
123
|
},
|
|
123
124
|
];
|
|
124
125
|
}
|
|
126
|
+
export async function guardOpenAIAgentsToolCall(veto, input, options) {
|
|
127
|
+
const context = 'context' in input ? input.context : input;
|
|
128
|
+
const toolName = resolveToolName(context);
|
|
129
|
+
const args = parseToolArguments(resolveToolArguments(context));
|
|
130
|
+
return await guardRuntimeToolCall(veto, {
|
|
131
|
+
name: toolName,
|
|
132
|
+
arguments: args,
|
|
133
|
+
}, options);
|
|
134
|
+
}
|
|
125
135
|
//# sourceMappingURL=index.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/openai-agents/index.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/openai-agents/index.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,36 @@
|
|
|
1
|
+
import type { GuardContext, GuardResult, Veto } from '../core/veto.js';
|
|
2
|
+
export interface RuntimeToolCall {
|
|
3
|
+
name: string;
|
|
4
|
+
arguments: Record<string, unknown>;
|
|
5
|
+
id?: string;
|
|
6
|
+
}
|
|
7
|
+
export interface RuntimeGuardOptions {
|
|
8
|
+
context?: GuardContext | ((call: RuntimeToolCall) => GuardContext | undefined);
|
|
9
|
+
onAllow?: (toolName: string, args: Record<string, unknown>) => void | Promise<void>;
|
|
10
|
+
onDeny?: (toolName: string, args: Record<string, unknown>, reason: string) => void | Promise<void>;
|
|
11
|
+
onApprovalRequired?: (toolName: string, args: Record<string, unknown>, approvalId?: string) => void | Promise<void>;
|
|
12
|
+
}
|
|
13
|
+
export interface RuntimeGuardDecision {
|
|
14
|
+
decision: GuardResult['decision'];
|
|
15
|
+
allowed: boolean;
|
|
16
|
+
toolName: string;
|
|
17
|
+
arguments: Record<string, unknown>;
|
|
18
|
+
reason?: string;
|
|
19
|
+
approvalId?: string;
|
|
20
|
+
result: GuardResult;
|
|
21
|
+
}
|
|
22
|
+
export interface GuardedRuntimeExecutionOptions<TResult> extends RuntimeGuardOptions {
|
|
23
|
+
onBlocked?: (decision: RuntimeGuardDecision) => TResult | Promise<TResult>;
|
|
24
|
+
}
|
|
25
|
+
export declare class VetoRuntimeAdapterError extends Error {
|
|
26
|
+
readonly decision: GuardResult['decision'];
|
|
27
|
+
readonly toolName: string;
|
|
28
|
+
readonly reason?: string;
|
|
29
|
+
readonly approvalId?: string;
|
|
30
|
+
constructor(decision: RuntimeGuardDecision);
|
|
31
|
+
}
|
|
32
|
+
export declare function asRecord(value: unknown): Record<string, unknown>;
|
|
33
|
+
export declare function parseJsonObject(value: unknown): Record<string, unknown>;
|
|
34
|
+
export declare function guardRuntimeToolCall(veto: Veto, call: RuntimeToolCall, options?: RuntimeGuardOptions): Promise<RuntimeGuardDecision>;
|
|
35
|
+
export declare function executeGuardedRuntimeToolCall<TResult>(veto: Veto, call: RuntimeToolCall, execute: (args: Record<string, unknown>) => TResult | Promise<TResult>, options?: GuardedRuntimeExecutionOptions<TResult>): Promise<TResult>;
|
|
36
|
+
//# sourceMappingURL=shared.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.d.ts","sourceRoot":"","sources":["../../src/integrations/shared.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,YAAY,EAAE,WAAW,EAAE,IAAI,EAAE,MAAM,iBAAiB,CAAC;AAEvE,MAAM,WAAW,eAAe;IAC9B,IAAI,EAAE,MAAM,CAAC;IACb,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,EAAE,CAAC,EAAE,MAAM,CAAC;CACb;AAED,MAAM,WAAW,mBAAmB;IAClC,OAAO,CAAC,EAAE,YAAY,GAAG,CAAC,CAAC,IAAI,EAAE,eAAe,KAAK,YAAY,GAAG,SAAS,CAAC,CAAC;IAC/E,OAAO,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACpF,MAAM,CAAC,EAAE,CAAC,QAAQ,EAAE,MAAM,EAAE,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAAE,MAAM,EAAE,MAAM,KAAK,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;IACnG,kBAAkB,CAAC,EAAE,CACnB,QAAQ,EAAE,MAAM,EAChB,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,EAC7B,UAAU,CAAC,EAAE,MAAM,KAChB,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,CAAC;CAC3B;AAED,MAAM,WAAW,oBAAoB;IACnC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAClC,OAAO,EAAE,OAAO,CAAC;IACjB,QAAQ,EAAE,MAAM,CAAC;IACjB,SAAS,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAAC;IACnC,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,MAAM,EAAE,WAAW,CAAC;CACrB;AAED,MAAM,WAAW,8BAA8B,CAAC,OAAO,CAAE,SAAQ,mBAAmB;IAClF,SAAS,CAAC,EAAE,CAAC,QAAQ,EAAE,oBAAoB,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,CAAC;CAC5E;AAED,qBAAa,uBAAwB,SAAQ,KAAK;IAChD,QAAQ,CAAC,QAAQ,EAAE,WAAW,CAAC,UAAU,CAAC,CAAC;IAC3C,QAAQ,CAAC,QAAQ,EAAE,MAAM,CAAC;IAC1B,QAAQ,CAAC,MAAM,CAAC,EAAE,MAAM,CAAC;IACzB,QAAQ,CAAC,UAAU,CAAC,EAAE,MAAM,CAAC;gBAEjB,QAAQ,EAAE,oBAAoB;CAW3C;AAED,wBAAgB,QAAQ,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAKhE;AAED,wBAAgB,eAAe,CAAC,KAAK,EAAE,OAAO,GAAG,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,CAkBvE;AAED,wBAAsB,oBAAoB,CACxC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,eAAe,EACrB,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAiC/B;AAED,wBAAsB,6BAA6B,CAAC,OAAO,EACzD,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,eAAe,EACrB,OAAO,EAAE,CAAC,IAAI,EAAE,MAAM,CAAC,MAAM,EAAE,OAAO,CAAC,KAAK,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,EACtE,OAAO,CAAC,EAAE,8BAA8B,CAAC,OAAO,CAAC,GAChD,OAAO,CAAC,OAAO,CAAC,CAWlB"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
export class VetoRuntimeAdapterError extends Error {
|
|
2
|
+
decision;
|
|
3
|
+
toolName;
|
|
4
|
+
reason;
|
|
5
|
+
approvalId;
|
|
6
|
+
constructor(decision) {
|
|
7
|
+
const reason = decision.reason ?? (decision.decision === 'require_approval'
|
|
8
|
+
? 'Approval required'
|
|
9
|
+
: 'Policy violation');
|
|
10
|
+
super(`Tool call ${decision.decision}: ${decision.toolName} - ${reason}`);
|
|
11
|
+
this.name = 'VetoRuntimeAdapterError';
|
|
12
|
+
this.decision = decision.decision;
|
|
13
|
+
this.toolName = decision.toolName;
|
|
14
|
+
this.reason = decision.reason;
|
|
15
|
+
this.approvalId = decision.approvalId;
|
|
16
|
+
}
|
|
17
|
+
}
|
|
18
|
+
export function asRecord(value) {
|
|
19
|
+
if (typeof value === 'object' && value !== null && !Array.isArray(value)) {
|
|
20
|
+
return value;
|
|
21
|
+
}
|
|
22
|
+
return {};
|
|
23
|
+
}
|
|
24
|
+
export function parseJsonObject(value) {
|
|
25
|
+
if (typeof value !== 'string') {
|
|
26
|
+
return asRecord(value);
|
|
27
|
+
}
|
|
28
|
+
if (value.length === 0) {
|
|
29
|
+
return {};
|
|
30
|
+
}
|
|
31
|
+
try {
|
|
32
|
+
const parsed = JSON.parse(value);
|
|
33
|
+
if (typeof parsed === 'object' && parsed !== null && !Array.isArray(parsed)) {
|
|
34
|
+
return parsed;
|
|
35
|
+
}
|
|
36
|
+
return { value: parsed };
|
|
37
|
+
}
|
|
38
|
+
catch {
|
|
39
|
+
return {};
|
|
40
|
+
}
|
|
41
|
+
}
|
|
42
|
+
export async function guardRuntimeToolCall(veto, call, options) {
|
|
43
|
+
const context = typeof options?.context === 'function'
|
|
44
|
+
? options.context(call)
|
|
45
|
+
: options?.context;
|
|
46
|
+
const result = await veto.guard(call.name, call.arguments, context ?? {});
|
|
47
|
+
const allowed = result.shadow === true || result.decision === 'allow';
|
|
48
|
+
const reason = result.reason
|
|
49
|
+
?? (result.decision === 'require_approval' ? 'Approval required' : undefined)
|
|
50
|
+
?? (result.decision === 'deny' ? 'Policy violation' : undefined);
|
|
51
|
+
const decision = {
|
|
52
|
+
decision: result.decision,
|
|
53
|
+
allowed,
|
|
54
|
+
toolName: call.name,
|
|
55
|
+
arguments: call.arguments,
|
|
56
|
+
reason,
|
|
57
|
+
approvalId: result.approvalId,
|
|
58
|
+
result,
|
|
59
|
+
};
|
|
60
|
+
if (allowed) {
|
|
61
|
+
if (options?.onAllow)
|
|
62
|
+
await options.onAllow(call.name, call.arguments);
|
|
63
|
+
return decision;
|
|
64
|
+
}
|
|
65
|
+
if (result.decision === 'require_approval') {
|
|
66
|
+
if (options?.onApprovalRequired) {
|
|
67
|
+
await options.onApprovalRequired(call.name, call.arguments, result.approvalId);
|
|
68
|
+
}
|
|
69
|
+
return decision;
|
|
70
|
+
}
|
|
71
|
+
if (options?.onDeny)
|
|
72
|
+
await options.onDeny(call.name, call.arguments, reason ?? 'Policy violation');
|
|
73
|
+
return decision;
|
|
74
|
+
}
|
|
75
|
+
export async function executeGuardedRuntimeToolCall(veto, call, execute, options) {
|
|
76
|
+
const decision = await guardRuntimeToolCall(veto, call, options);
|
|
77
|
+
if (decision.allowed) {
|
|
78
|
+
return await execute(call.arguments);
|
|
79
|
+
}
|
|
80
|
+
if (options?.onBlocked) {
|
|
81
|
+
return await options.onBlocked(decision);
|
|
82
|
+
}
|
|
83
|
+
throw new VetoRuntimeAdapterError(decision);
|
|
84
|
+
}
|
|
85
|
+
//# sourceMappingURL=shared.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"shared.js","sourceRoot":"","sources":["../../src/integrations/shared.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import type { Veto } from '../../core/veto.js';
|
|
2
|
+
import { type RuntimeGuardDecision, type RuntimeGuardOptions } from '../shared.js';
|
|
3
|
+
export interface VercelAIToolCallPart {
|
|
4
|
+
type?: string;
|
|
5
|
+
toolCallId?: string;
|
|
6
|
+
toolName: string;
|
|
7
|
+
args?: unknown;
|
|
8
|
+
input?: unknown;
|
|
9
|
+
[key: string]: unknown;
|
|
10
|
+
}
|
|
11
|
+
export declare function guardVercelAIToolCall(veto: Veto, part: VercelAIToolCallPart, options?: RuntimeGuardOptions): Promise<RuntimeGuardDecision>;
|
|
12
|
+
//# sourceMappingURL=guard.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard.d.ts","sourceRoot":"","sources":["../../../src/integrations/vercel-ai/guard.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,MAAM,oBAAoB,CAAC;AAC/C,OAAO,EAGL,KAAK,oBAAoB,EACzB,KAAK,mBAAmB,EACzB,MAAM,cAAc,CAAC;AAEtB,MAAM,WAAW,oBAAoB;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,QAAQ,EAAE,MAAM,CAAC;IACjB,IAAI,CAAC,EAAE,OAAO,CAAC;IACf,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB;AAED,wBAAsB,qBAAqB,CACzC,IAAI,EAAE,IAAI,EACV,IAAI,EAAE,oBAAoB,EAC1B,OAAO,CAAC,EAAE,mBAAmB,GAC5B,OAAO,CAAC,oBAAoB,CAAC,CAM/B"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { guardRuntimeToolCall, parseJsonObject, } from '../shared.js';
|
|
2
|
+
export async function guardVercelAIToolCall(veto, part, options) {
|
|
3
|
+
return await guardRuntimeToolCall(veto, {
|
|
4
|
+
id: part.toolCallId,
|
|
5
|
+
name: part.toolName,
|
|
6
|
+
arguments: parseJsonObject(part.args ?? part.input),
|
|
7
|
+
}, options);
|
|
8
|
+
}
|
|
9
|
+
//# sourceMappingURL=guard.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"guard.js","sourceRoot":"","sources":["../../../src/integrations/vercel-ai/guard.ts"],"names":[],"mappings":"AACA,OAAO,EACL,oBAAoB,EACpB,eAAe,GAGhB,MAAM,cAAc,CAAC;AAWtB,MAAM,CAAC,KAAK,UAAU,qBAAqB,CACzC,IAAU,EACV,IAA0B,EAC1B,OAA6B;IAE7B,OAAO,MAAM,oBAAoB,CAAC,IAAI,EAAE;QACtC,EAAE,EAAE,IAAI,CAAC,UAAU;QACnB,IAAI,EAAE,IAAI,CAAC,QAAQ;QACnB,SAAS,EAAE,eAAe,CAAC,IAAI,CAAC,IAAI,IAAI,IAAI,CAAC,KAAK,CAAC;KACpD,EAAE,OAAO,CAAC,CAAC;AACd,CAAC"}
|
|
@@ -1,3 +1,5 @@
|
|
|
1
1
|
export { createVetoMiddleware } from './middleware.js';
|
|
2
2
|
export type { VetoVercelMiddleware, CreateVetoMiddlewareOptions } from './middleware.js';
|
|
3
|
+
export { guardVercelAIToolCall } from './guard.js';
|
|
4
|
+
export type { VercelAIToolCallPart } from './guard.js';
|
|
3
5
|
//# sourceMappingURL=index.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/vercel-ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/integrations/vercel-ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AACvD,YAAY,EAAE,oBAAoB,EAAE,2BAA2B,EAAE,MAAM,iBAAiB,CAAC;AACzF,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,MAAM,YAAY,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/vercel-ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC"}
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/integrations/vercel-ai/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,oBAAoB,EAAE,MAAM,iBAAiB,CAAC;AAEvD,OAAO,EAAE,qBAAqB,EAAE,MAAM,YAAY,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "veto-sdk",
|
|
3
|
-
"version": "2.9.
|
|
3
|
+
"version": "2.9.1",
|
|
4
4
|
"description": "Policy runtime for AI agent tool calls",
|
|
5
5
|
"main": "dist/index.js",
|
|
6
6
|
"types": "dist/index.d.ts",
|
|
@@ -168,6 +168,26 @@
|
|
|
168
168
|
"types": "./dist/integrations/browser-use/index.d.ts",
|
|
169
169
|
"import": "./dist/integrations/browser-use/index.js"
|
|
170
170
|
},
|
|
171
|
+
"./integrations/claude-sdk": {
|
|
172
|
+
"types": "./dist/integrations/claude-sdk/index.d.ts",
|
|
173
|
+
"import": "./dist/integrations/claude-sdk/index.js"
|
|
174
|
+
},
|
|
175
|
+
"./integrations/google-adk": {
|
|
176
|
+
"types": "./dist/integrations/google-adk/index.d.ts",
|
|
177
|
+
"import": "./dist/integrations/google-adk/index.js"
|
|
178
|
+
},
|
|
179
|
+
"./integrations/mastra": {
|
|
180
|
+
"types": "./dist/integrations/mastra/index.d.ts",
|
|
181
|
+
"import": "./dist/integrations/mastra/index.js"
|
|
182
|
+
},
|
|
183
|
+
"./integrations/autogen": {
|
|
184
|
+
"types": "./dist/integrations/autogen/index.d.ts",
|
|
185
|
+
"import": "./dist/integrations/autogen/index.js"
|
|
186
|
+
},
|
|
187
|
+
"./integrations/crewai": {
|
|
188
|
+
"types": "./dist/integrations/crewai/index.d.ts",
|
|
189
|
+
"import": "./dist/integrations/crewai/index.js"
|
|
190
|
+
},
|
|
171
191
|
"./integrations/vercel-ai": {
|
|
172
192
|
"types": "./dist/integrations/vercel-ai/index.d.ts",
|
|
173
193
|
"import": "./dist/integrations/vercel-ai/index.js"
|