Sfoglia il codice sorgente

docs(core): plugin tool context updates

adamelmore 3 settimane fa
parent
commit
b4e0cdbe8e

+ 6 - 3
packages/web/src/content/docs/custom-tools.mdx

@@ -120,12 +120,15 @@ export default tool({
   args: {},
   args: {},
   async execute(args, context) {
   async execute(args, context) {
     // Access context information
     // Access context information
-    const { agent, sessionID, messageID, directory } = context
-    return `Agent: ${agent}, Session: ${sessionID}, Message: ${messageID}, Directory: ${directory}`
+    const { agent, sessionID, messageID, directory, worktree } = context
+    return `Agent: ${agent}, Session: ${sessionID}, Message: ${messageID}, Directory: ${directory}, Worktree: ${worktree}`
   },
   },
 })
 })
 ```
 ```
 
 
+Use `context.directory` for the session working directory.
+Use `context.worktree` for the git worktree root.
+
 ---
 ---
 
 
 ## Examples
 ## Examples
@@ -157,7 +160,7 @@ export default tool({
     b: tool.schema.number().describe("Second number"),
     b: tool.schema.number().describe("Second number"),
   },
   },
   async execute(args, context) {
   async execute(args, context) {
-    const script = path.join(context.directory, ".opencode/tools/add.py")
+    const script = path.join(context.worktree, ".opencode/tools/add.py")
     const result = await Bun.$`python3 ${script} ${args.a} ${args.b}`.text()
     const result = await Bun.$`python3 ${script} ${args.a} ${args.b}`.text()
     return result.trim()
     return result.trim()
   },
   },

+ 3 - 2
packages/web/src/content/docs/plugins.mdx

@@ -269,8 +269,9 @@ export const CustomToolsPlugin: Plugin = async (ctx) => {
         args: {
         args: {
           foo: tool.schema.string(),
           foo: tool.schema.string(),
         },
         },
-        async execute(args, ctx) {
-          return `Hello ${args.foo}!`
+        async execute(args, context) {
+          const { directory, worktree } = context
+          return `Hello ${args.foo} from ${directory} (worktree: ${worktree})`
         },
         },
       }),
       }),
     },
     },