diff options
| author | Haris Gušić <[email protected]> | 2025-10-30 17:31:44 +0100 |
|---|---|---|
| committer | GitHub <[email protected]> | 2025-10-30 11:31:44 -0500 |
| commit | dc87659791fb2119824b97934b0fcc7aebf35ac4 (patch) | |
| tree | e63d3de8f4c3d2a03e57d828074e7455dbd7e03d | |
| parent | 149f5eaa2e68b79ce8492d121c1bc0165b8d917d (diff) | |
| download | opencode-dc87659791fb2119824b97934b0fcc7aebf35ac4.tar.gz opencode-dc87659791fb2119824b97934b0fcc7aebf35ac4.zip | |
tweak: move zod validation for tools to ensure it always runs (#3565)
| -rw-r--r-- | packages/opencode/src/session/prompt.ts | 1 | ||||
| -rw-r--r-- | 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 9042ed164..080f9d994 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 c7a28c516..f826d0c99 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 }, } } |
