diff --git a/packages/sdk/src/plugins/user-chat/plugin.ts b/packages/sdk/src/plugins/user-chat/plugin.ts index 069bdee..55c86ae 100644 --- a/packages/sdk/src/plugins/user-chat/plugin.ts +++ b/packages/sdk/src/plugins/user-chat/plugin.ts @@ -600,6 +600,7 @@ export const userChatPlugin = definePlugin("user-chat") .notification("agentMessage", { schema: z.object({ sessionId: sessionIdSchema, + messageId: chatMessageIdSchema, content: z.string(), format: z.enum(["text", "markdown"]), timestamp: z.number(), @@ -671,6 +672,7 @@ export const userChatPlugin = definePlugin("user-chat") ); ctx.notify("agentMessage", { sessionId: ctx.sessionId, + messageId, content: input.message, format: input.format, timestamp, @@ -849,6 +851,7 @@ export const userChatPlugin = definePlugin("user-chat") ); ctx.notify("agentMessage", { sessionId: ctx.sessionId, + messageId: chatMessageId, content, format: "text", timestamp: Date.now(), diff --git a/packages/sdk/src/plugins/user-chat/user-chat.integration.test.ts b/packages/sdk/src/plugins/user-chat/user-chat.integration.test.ts index cca99fa..ad98564 100644 --- a/packages/sdk/src/plugins/user-chat/user-chat.integration.test.ts +++ b/packages/sdk/src/plugins/user-chat/user-chat.integration.test.ts @@ -544,6 +544,11 @@ describe('user-chat plugin', () => { const messages = harness.notifications.getAgentMessages() expect(messages).toHaveLength(1) expect(messages[0].content).toBe('Hello user!') + const stored = selectPluginState(session.state, 'messages')?.messages.filter(message => message.type === 'agent_message') ?? [] + expect(stored).toHaveLength(1) + expect(harness.notifications.getByType('user-chat', 'agentMessage')[0].payload).toMatchObject({ + messageId: stored[0].messageId, + }) await harness.shutdown() }) @@ -1135,6 +1140,11 @@ describe('user-chat plugin', () => { const messages = harness.notifications.getAgentMessages() expect(messages).toHaveLength(1) expect(messages[0].content).toBe('Hello from XML!') + const stored = selectPluginState(session.state, 'messages')?.messages.filter(message => message.type === 'agent_message') ?? [] + expect(stored).toHaveLength(1) + expect(harness.notifications.getByType('user-chat', 'agentMessage')[0].payload).toMatchObject({ + messageId: stored[0].messageId, + }) await harness.shutdown() })