From 1ffc8be2b6917073902c002fc40bf74dd27cb8de Mon Sep 17 00:00:00 2001 From: Dax Raad Date: Thu, 18 Sep 2025 05:42:59 -0400 Subject: rework custom tools --- packages/plugin/src/example.ts | 8 ++++---- packages/plugin/src/tool.ts | 15 +++++++-------- 2 files changed, 11 insertions(+), 12 deletions(-) (limited to 'packages/plugin/src') diff --git a/packages/plugin/src/example.ts b/packages/plugin/src/example.ts index fd6a404d9..1e4557a68 100644 --- a/packages/plugin/src/example.ts +++ b/packages/plugin/src/example.ts @@ -5,15 +5,15 @@ export const ExamplePlugin: Plugin = async (ctx) => { return { permission: {}, tool: { - mytool: tool((zod) => ({ + mytool: tool({ description: "This is a custom tool tool", args: { - foo: zod.string(), + foo: tool.schema.string().describe("foo"), }, - async execute(args, ctx) { + async execute(args) { return `Hello ${args.foo}!` }, - })), + }), }, async "chat.params"(_input, output) { output.topP = 1 diff --git a/packages/plugin/src/tool.ts b/packages/plugin/src/tool.ts index 7c1d3d7c5..2998a1e72 100644 --- a/packages/plugin/src/tool.ts +++ b/packages/plugin/src/tool.ts @@ -7,14 +7,13 @@ export type ToolContext = { abort: AbortSignal } -export function tool( - input: (zod: typeof z) => { - description: string - args: Args - execute: (args: z.infer>, ctx: ToolContext) => Promise - }, -) { - return input(z) +export function tool(input: { + description: string + args: Args + execute(args: z.infer>, context: ToolContext): Promise +}) { + return input } +tool.schema = z export type ToolDefinition = ReturnType -- cgit v1.2.3