summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--packages/opencode/src/tool/registry.ts10
-rw-r--r--packages/plugin/src/index.ts4
2 files changed, 13 insertions, 1 deletions
diff --git a/packages/opencode/src/tool/registry.ts b/packages/opencode/src/tool/registry.ts
index 5ed5a879b..9a06cb599 100644
--- a/packages/opencode/src/tool/registry.ts
+++ b/packages/opencode/src/tool/registry.ts
@@ -149,9 +149,17 @@ export namespace ToolRegistry {
})
.map(async (t) => {
using _ = log.time(t.id)
+ const tool = await t.init({ agent })
+ const output = {
+ description: tool.description,
+ parameters: tool.parameters,
+ }
+ await Plugin.trigger("tool.definition", { toolID: t.id }, output)
return {
id: t.id,
- ...(await t.init({ agent })),
+ ...tool,
+ description: output.description,
+ parameters: output.parameters,
}
}),
)
diff --git a/packages/plugin/src/index.ts b/packages/plugin/src/index.ts
index 664f2c967..bd4ba5304 100644
--- a/packages/plugin/src/index.ts
+++ b/packages/plugin/src/index.ts
@@ -224,4 +224,8 @@ export interface Hooks {
input: { sessionID: string; messageID: string; partID: string },
output: { text: string },
) => Promise<void>
+ /**
+ * Modify tool definitions (description and parameters) sent to LLM
+ */
+ "tool.definition"?: (input: { toolID: string }, output: { description: string; parameters: any }) => Promise<void>
}