Przeglądaj źródła

tweak: move zod validation for tools to ensure it always runs (#3565)

Haris Gušić 10 miesięcy temu
rodzic
commit
dc87659791

+ 0 - 1
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!,

+ 7 - 2
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
       },
     }
   }