diff --git a/packages/frontend/core/src/blocksuite/presets/ai/_common/components/ask-ai-toolbar.ts b/packages/frontend/core/src/blocksuite/presets/ai/_common/components/ask-ai-toolbar.ts index 1da93ff7ce..71e821cdc2 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/_common/components/ask-ai-toolbar.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/_common/components/ask-ai-toolbar.ts @@ -74,7 +74,11 @@ export class AskAIToolbarButton extends WithDisposable(LitElement) { AIProvider.slots.requestOpenWithChat.emit({ host: this.host }); extractContext(this.host) .then(context => { - AIProvider.slots.requestSendWithChat.emit({ input, context }); + AIProvider.slots.requestSendWithChat.emit({ + input, + context, + host: this.host, + }); }) .catch(console.error); }; diff --git a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-input.ts b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-input.ts index d4e262a469..72573cd68e 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-input.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/chat-panel/chat-panel-input.ts @@ -300,11 +300,15 @@ export class ChatPanelInput extends WithDisposable(LitElement) { super.connectedCallback(); this._disposables.add( - AIProvider.slots.requestSendWithChat.on(async ({ input, context }) => { - context && this.updateContext(context); - await this.updateComplete; - await this.send(input); - }) + AIProvider.slots.requestSendWithChat.on( + async ({ input, context, host }) => { + if (this.host === host) { + context && this.updateContext(context); + await this.updateComplete; + await this.send(input); + } + } + ) ); } diff --git a/packages/frontend/core/src/blocksuite/presets/ai/entries/edgeless/index.ts b/packages/frontend/core/src/blocksuite/presets/ai/entries/edgeless/index.ts index b42159e788..7c7840e229 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/entries/edgeless/index.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/entries/edgeless/index.ts @@ -51,7 +51,11 @@ export function setupEdgelessElementToolbarAIEntry( AIProvider.slots.requestOpenWithChat.emit({ host: edgeless.host }); extractContext(edgeless.host) .then(context => { - AIProvider.slots.requestSendWithChat.emit({ input, context }); + AIProvider.slots.requestSendWithChat.emit({ + input, + context, + host: edgeless.host, + }); }) .catch(console.error); }; diff --git a/packages/frontend/core/src/blocksuite/presets/ai/provider.ts b/packages/frontend/core/src/blocksuite/presets/ai/provider.ts index 5d817fdf57..2fcac2e24e 100644 --- a/packages/frontend/core/src/blocksuite/presets/ai/provider.ts +++ b/packages/frontend/core/src/blocksuite/presets/ai/provider.ts @@ -24,6 +24,7 @@ export interface AIChatParams { } export interface AISendParams { + host: EditorHost; input?: string; context?: Partial; }