From dc87659791fb2119824b97934b0fcc7aebf35ac4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Haris=20Gu=C5=A1i=C4=87?= Date: Thu, 30 Oct 2025 17:31:44 +0100 Subject: [PATCH] tweak: move zod validation for tools to ensure it always runs (#3565) --- packages/opencode/src/session/prompt.ts | 1 - packages/opencode/src/tool/tool.ts | 9 +++++++-- 2 files changed, 7 insertions(+), 3 deletions(-) diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 9042ed16..080f9d99 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/packages/opencode/src/session/prompt.ts @@ -534,7 +534,6 @@ export namespace SessionPrompt { args, }, ) - item.parameters.parse(args) const result = await item.execute(args, { sessionID: input.sessionID, abort: options.abortSignal!, diff --git a/packages/opencode/src/tool/tool.ts b/packages/opencode/src/tool/tool.ts index c7a28c51..f826d0c9 100644 --- a/packages/opencode/src/tool/tool.ts +++ b/packages/opencode/src/tool/tool.ts @@ -42,8 +42,13 @@ export namespace Tool { return { id, init: async () => { - if (init instanceof Function) return init() - return init + const toolInfo = init instanceof Function ? await init() : init + const execute = toolInfo.execute + toolInfo.execute = (args, ctx) => { + toolInfo.parameters.parse(args) + return execute(args, ctx) + } + return toolInfo }, } }