|
@@ -863,11 +863,31 @@ export namespace Session {
|
|
|
const execute = item.execute
|
|
const execute = item.execute
|
|
|
if (!execute) continue
|
|
if (!execute) continue
|
|
|
item.execute = async (args, opts) => {
|
|
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 result = await execute(args, opts)
|
|
|
const output = result.content
|
|
const output = result.content
|
|
|
.filter((x: any) => x.type === "text")
|
|
.filter((x: any) => x.type === "text")
|
|
|
.map((x: any) => x.text)
|
|
.map((x: any) => x.text)
|
|
|
.join("\n\n")
|
|
.join("\n\n")
|
|
|
|
|
+ await Plugin.trigger(
|
|
|
|
|
+ "tool.execute.after",
|
|
|
|
|
+ {
|
|
|
|
|
+ tool: key,
|
|
|
|
|
+ sessionID: input.sessionID,
|
|
|
|
|
+ callID: opts.toolCallId,
|
|
|
|
|
+ },
|
|
|
|
|
+ result,
|
|
|
|
|
+ )
|
|
|
|
|
|
|
|
return {
|
|
return {
|
|
|
output,
|
|
output,
|