blob: 7c1d3d7c53377e6a505899d4e1254220aef99409 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
|
import { z } from "zod/v4"
export type ToolContext = {
sessionID: string
messageID: string
agent: string
abort: AbortSignal
}
export function tool<Args extends z.ZodRawShape>(
input: (zod: typeof z) => {
description: string
args: Args
execute: (args: z.infer<z.ZodObject<Args>>, ctx: ToolContext) => Promise<string>
},
) {
return input(z)
}
export type ToolDefinition = ReturnType<typeof tool>
|