summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
authorAiden Cline <[email protected]>2025-08-29 21:51:06 -0500
committerGitHub <[email protected]>2025-08-29 21:51:06 -0500
commita3f4a030b4f6e94dc11dc3ce93f6f37620982cc6 (patch)
tree6b33afdc204ed57597777de188098b1f21abb2f6
parent9a330b4f0f5a24a26e859c7a56daeedb397c3c67 (diff)
downloadopencode-a3f4a030b4f6e94dc11dc3ce93f6f37620982cc6.tar.gz
opencode-a3f4a030b4f6e94dc11dc3ce93f6f37620982cc6.zip
fix: mcp tool not triggering hooks (#2320)
-rw-r--r--packages/opencode/src/session/index.ts20
1 files changed, 20 insertions, 0 deletions
diff --git a/packages/opencode/src/session/index.ts b/packages/opencode/src/session/index.ts
index a0b3be3c1..4b66cdee3 100644
--- a/packages/opencode/src/session/index.ts
+++ b/packages/opencode/src/session/index.ts
@@ -863,11 +863,31 @@ export namespace Session {
const execute = item.execute
if (!execute) continue
item.execute = async (args, opts) => {
+ await Plugin.trigger(
+ "tool.execute.before",
+ {
+ tool: key,
+ sessionID: input.sessionID,
+ callID: opts.toolCallId,
+ },
+ {
+ args,
+ },
+ )
const result = await execute(args, opts)
const output = result.content
.filter((x: any) => x.type === "text")
.map((x: any) => x.text)
.join("\n\n")
+ await Plugin.trigger(
+ "tool.execute.after",
+ {
+ tool: key,
+ sessionID: input.sessionID,
+ callID: opts.toolCallId,
+ },
+ result,
+ )
return {
output,