diff --git a/packages/frontend/core/src/blocksuite/ai/chat-panel/chat-panel-messages.ts b/packages/frontend/core/src/blocksuite/ai/chat-panel/chat-panel-messages.ts index 6f4edd22c..31cdb81dd 100644 --- a/packages/frontend/core/src/blocksuite/ai/chat-panel/chat-panel-messages.ts +++ b/packages/frontend/core/src/blocksuite/ai/chat-panel/chat-panel-messages.ts @@ -13,6 +13,10 @@ import { repeat } from 'lit/directives/repeat.js'; import { debounce } from 'lodash-es'; import { AffineIcon } from '../_common/icons'; +import type { + AINetworkSearchConfig, + AIReasoningConfig, +} from '../components/ai-chat-input'; import { type ChatMessage, isChatAction, @@ -161,6 +165,12 @@ export class ChatPanelMessages extends WithDisposable(ShadowlessElement) { @property({ attribute: false }) accessor affineFeatureFlagService!: FeatureFlagService; + @property({ attribute: false }) + accessor networkSearchConfig!: AINetworkSearchConfig; + + @property({ attribute: false }) + accessor reasoningConfig!: AIReasoningConfig; + @query('.chat-panel-messages-container') accessor messagesContainer: HTMLDivElement | null = null; @@ -175,6 +185,17 @@ export class ChatPanelMessages extends WithDisposable(ShadowlessElement) { return this.messagesContainer; } + private get _isNetworkActive() { + return ( + !!this.networkSearchConfig.visible.value && + !!this.networkSearchConfig.enabled.value + ); + } + + private get _isReasoningActive() { + return !!this.reasoningConfig.enabled.value; + } + private _renderAIOnboarding() { return this.isLoading || !this.host?.store.get(FeatureFlagService).getFlag('enable_ai_onboarding') @@ -380,6 +401,8 @@ export class ChatPanelMessages extends WithDisposable(ShadowlessElement) { where: 'chat-panel', control: 'chat-send', isRootSession: true, + reasoning: this._isReasoningActive, + webSearch: this._isNetworkActive, }); this.updateContext({ abortController }); for await (const text of stream) { diff --git a/packages/frontend/core/src/blocksuite/ai/chat-panel/index.ts b/packages/frontend/core/src/blocksuite/ai/chat-panel/index.ts index baa72ed31..307022667 100644 --- a/packages/frontend/core/src/blocksuite/ai/chat-panel/index.ts +++ b/packages/frontend/core/src/blocksuite/ai/chat-panel/index.ts @@ -456,6 +456,8 @@ export class ChatPanel extends SignalWatcher( .isLoading=${this.isLoading} .extensions=${this.extensions} .affineFeatureFlagService=${this.affineFeatureFlagService} + .networkSearchConfig=${this.networkSearchConfig} + .reasoningConfig=${this.reasoningConfig} > chip.state === 'processing'); - if (isProcessing) { + const needPoll = this.chips.some( + chip => + chip.state === 'processing' || isTagChip(chip) || isCollectionChip(chip) + ); + if (needPoll) { await this._pollContextDocsAndFiles(); } this._isLoading = false; diff --git a/packages/frontend/core/src/blocksuite/ai/components/playground/chat.ts b/packages/frontend/core/src/blocksuite/ai/components/playground/chat.ts index 908967dc5..b4753dfac 100644 --- a/packages/frontend/core/src/blocksuite/ai/components/playground/chat.ts +++ b/packages/frontend/core/src/blocksuite/ai/components/playground/chat.ts @@ -299,6 +299,8 @@ export class PlaygroundChat extends SignalWatcher( .isLoading=${this.isLoading} .extensions=${this.extensions} .affineFeatureFlagService=${this.affineFeatureFlagService} + .networkSearchConfig=${this.networkSearchConfig} + .reasoningConfig=${this.reasoningConfig} >