Procházet zdrojové kódy

feat(plugin): pass sessionID and callID to shell.env hook input (#13662)

Helge Tesdal před 1 měsícem
rodič
revize
1aa18c6cd6

+ 1 - 1
packages/opencode/src/session/prompt.ts

@@ -1618,7 +1618,7 @@ NOTE: At any point in time through this workflow you should feel free to ask the
     const args = matchingInvocation?.args
 
     const cwd = Instance.directory
-    const shellEnv = await Plugin.trigger("shell.env", { cwd }, { env: {} })
+    const shellEnv = await Plugin.trigger("shell.env", { cwd, sessionID: input.sessionID, callID: part.callID }, { env: {} })
     const proc = spawn(shell, args, {
       cwd,
       detached: process.platform !== "win32",

+ 1 - 1
packages/opencode/src/tool/bash.ts

@@ -163,7 +163,7 @@ export const BashTool = Tool.define("bash", async () => {
         })
       }
 
-      const shellEnv = await Plugin.trigger("shell.env", { cwd }, { env: {} })
+      const shellEnv = await Plugin.trigger("shell.env", { cwd, sessionID: ctx.sessionID, callID: ctx.callID }, { env: {} })
       const proc = spawn(params.command, {
         shell,
         cwd,

+ 4 - 1
packages/plugin/src/index.ts

@@ -185,7 +185,10 @@ export interface Hooks {
     input: { tool: string; sessionID: string; callID: string },
     output: { args: any },
   ) => Promise<void>
-  "shell.env"?: (input: { cwd: string }, output: { env: Record<string, string> }) => Promise<void>
+  "shell.env"?: (
+    input: { cwd: string; sessionID?: string; callID?: string },
+    output: { env: Record<string, string> },
+  ) => Promise<void>
   "tool.execute.after"?: (
     input: { tool: string; sessionID: string; callID: string; args: any },
     output: {