Просмотр исходного кода

feat(hook): command execute before hook (#9267)

Spoon 2 месяцев назад
Родитель
Сommit
bfd2f91d5b
2 измененных файлов с 14 добавлено и 0 удалено
  1. 10 0
      packages/opencode/src/session/prompt.ts
  2. 4 0
      packages/plugin/src/index.ts

+ 10 - 0
packages/opencode/src/session/prompt.ts

@@ -1702,6 +1702,16 @@ NOTE: At any point in time through this workflow you should feel free to ask the
         : await lastModel(input.sessionID)
       : taskModel
 
+    await Plugin.trigger(
+      "command.execute.before",
+      {
+        command: input.command,
+        sessionID: input.sessionID,
+        arguments: input.arguments,
+      },
+      { parts },
+    )
+
     const result = (await prompt({
       sessionID: input.sessionID,
       messageID: input.messageID,

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

@@ -173,6 +173,10 @@ export interface Hooks {
     output: { temperature: number; topP: number; topK: number; options: Record<string, any> },
   ) => Promise<void>
   "permission.ask"?: (input: Permission, output: { status: "ask" | "deny" | "allow" }) => Promise<void>
+  "command.execute.before"?: (
+    input: { command: string; sessionID: string; arguments: string },
+    output: { parts: Part[] },
+  ) => Promise<void>
   "tool.execute.before"?: (
     input: { tool: string; sessionID: string; callID: string },
     output: { args: any },