diff --git a/packages/opencode/src/session/prompt.ts b/packages/opencode/src/session/prompt.ts index 1802b1a3..b746fdec 100644 --- a/packages/opencode/src/session/prompt.ts +++ b/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, diff --git a/packages/plugin/src/index.ts b/packages/plugin/src/index.ts index f103749b..4b187efe 100644 --- a/packages/plugin/src/index.ts +++ b/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 + "chat.message"?: ( + input: { sessionID: string; agent?: string; model?: { providerID: string; modelID: string; messageID?: string } }, + output: { message: UserMessage; parts: Part[] }, + ) => Promise /** * 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 }, ) => Promise "permission.ask"?: (input: Permission, output: { status: "ask" | "deny" | "allow" }) => Promise