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

feat: add input context to chat.params and chat.message (#4085)

Mathias Beugnon 3 месяцев назад
Родитель
Сommit
d85eb1b880
2 измененных файлов с 13 добавлено и 3 удалено
  1. 8 1
      packages/opencode/src/session/prompt.ts
  2. 5 2
      packages/plugin/src/index.ts

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

@@ -206,6 +206,8 @@ export namespace SessionPrompt {
     const params = await Plugin.trigger(
       "chat.params",
       {
+        sessionID: input.sessionID,
+        agent: agent.name,
         model: model.info,
         provider: await Provider.getProvider(model.providerID),
         message: userMsg,
@@ -882,7 +884,12 @@ export namespace SessionPrompt {
 
     await Plugin.trigger(
       "chat.message",
-      {},
+      {
+        sessionID: input.sessionID,
+        agent: input.agent,
+        model: input.model,
+        messageID: input.messageID,
+      },
       {
         message: info,
         parts,

+ 5 - 2
packages/plugin/src/index.ts

@@ -143,12 +143,15 @@ export interface Hooks {
   /**
    * Called when a new message is received
    */
-  "chat.message"?: (input: {}, output: { message: UserMessage; parts: Part[] }) => Promise<void>
+  "chat.message"?: (
+    input: { sessionID: string; agent?: string; model?: { providerID: string; modelID: string; messageID?: string } },
+    output: { message: UserMessage; parts: Part[] },
+  ) => Promise<void>
   /**
    * Modify parameters sent to LLM
    */
   "chat.params"?: (
-    input: { model: Model; provider: Provider; message: UserMessage },
+    input: { sessionID: string; agent: string; model: Model; provider: Provider; message: UserMessage },
     output: { temperature: number; topP: number; options: Record<string, any> },
   ) => Promise<void>
   "permission.ask"?: (input: Permission, output: { status: "ask" | "deny" | "allow" }) => Promise<void>