diff --git a/packages/frontend/core/src/blocksuite/ai/chat-panel/message/assistant.ts b/packages/frontend/core/src/blocksuite/ai/chat-panel/message/assistant.ts index 1032037d52..7d28d69dbc 100644 --- a/packages/frontend/core/src/blocksuite/ai/chat-panel/message/assistant.ts +++ b/packages/frontend/core/src/blocksuite/ai/chat-panel/message/assistant.ts @@ -80,7 +80,7 @@ export class ChatMessageAssistant extends WithDisposable(ShadowlessElement) { accessor notificationService!: NotificationService; @property({ attribute: false }) - accessor independentMode!: boolean; + accessor independentMode: boolean | undefined; get state() { const { isLast, status } = this; diff --git a/packages/frontend/core/src/blocksuite/ai/components/ai-chat-add-context/ai-chat-add-context.ts b/packages/frontend/core/src/blocksuite/ai/components/ai-chat-add-context/ai-chat-add-context.ts index b44c2ff79e..c722abfd0e 100644 --- a/packages/frontend/core/src/blocksuite/ai/components/ai-chat-add-context/ai-chat-add-context.ts +++ b/packages/frontend/core/src/blocksuite/ai/components/ai-chat-add-context/ai-chat-add-context.ts @@ -23,6 +23,12 @@ export class AIChatAddContext extends SignalWatcher( } `; + @property({ attribute: false }) + accessor docId: string | undefined; + + @property({ attribute: false }) + accessor independentMode: boolean | undefined; + @property({ attribute: false }) accessor addChip!: (chip: ChatChip) => Promise; @@ -69,6 +75,8 @@ export class AIChatAddContext extends SignalWatcher( createLitPortal({ template: html` { @@ -561,10 +568,13 @@ export class ChatPanelAddPopover extends SignalWatcher( } private _track( - method: 'doc' | 'file' | 'tags' | 'collections', + method: EventArgs['addEmbeddingDoc']['method'], type?: 'page' | 'edgeless' ) { - track.$.chatPanel.chatPanelInput.addEmbeddingDoc({ + const page = this.independentMode + ? track.$.intelligence + : track.$.chatPanel; + page.chatPanelInput.addEmbeddingDoc({ control: 'addButton', method, type, diff --git a/packages/frontend/core/src/blocksuite/ai/components/ai-chat-chips/chat-panel-chips.ts b/packages/frontend/core/src/blocksuite/ai/components/ai-chat-chips/chat-panel-chips.ts index df1170007a..6dfd7ddf25 100644 --- a/packages/frontend/core/src/blocksuite/ai/components/ai-chat-chips/chat-panel-chips.ts +++ b/packages/frontend/core/src/blocksuite/ai/components/ai-chat-chips/chat-panel-chips.ts @@ -81,6 +81,9 @@ export class ChatPanelChips extends SignalWatcher( @property({ attribute: false }) accessor isCollapsed!: boolean; + @property({ attribute: false }) + accessor independentMode: boolean | undefined; + @property({ attribute: false }) accessor addChip!: (chip: ChatChip) => Promise; @@ -142,6 +145,7 @@ export class ChatPanelChips extends SignalWatcher( if (isDocChip(chip)) { return html` void; @@ -81,7 +84,10 @@ export class ChatPanelDocChip extends SignalWatcher( state: 'processing', }); const mode = this.docDisplayConfig.getDocPrimaryMode(this.chip.docId); - track.$.chatPanel.chatPanelInput.addEmbeddingDoc({ + const page = this.independentMode + ? track.$.intelligence + : track.$.chatPanel; + page.chatPanelInput.addEmbeddingDoc({ control: 'addButton', method: 'suggestion', type: mode, diff --git a/packages/frontend/core/src/blocksuite/ai/components/ai-chat-composer/ai-chat-composer.ts b/packages/frontend/core/src/blocksuite/ai/components/ai-chat-composer/ai-chat-composer.ts index f9c999589d..49affd3817 100644 --- a/packages/frontend/core/src/blocksuite/ai/components/ai-chat-composer/ai-chat-composer.ts +++ b/packages/frontend/core/src/blocksuite/ai/components/ai-chat-composer/ai-chat-composer.ts @@ -59,7 +59,7 @@ export class AIChatComposer extends SignalWatcher( `; @property({ attribute: false }) - accessor independentMode!: boolean; + accessor independentMode: boolean | undefined; @property({ attribute: false }) accessor host: EditorHost | null | undefined; @@ -85,9 +85,9 @@ export class AIChatComposer extends SignalWatcher( accessor updateContext!: (context: Partial) => void; @property({ attribute: false }) - accessor onEmbeddingProgressChange!: ( - count: Record - ) => void; + accessor onEmbeddingProgressChange: + | ((count: Record) => void) + | undefined; @property({ attribute: false }) accessor docDisplayConfig!: DocDisplayConfig; @@ -136,6 +136,7 @@ export class AIChatComposer extends SignalWatcher( - ) => void; + accessor onEmbeddingProgressChange: + | ((count: Record) => void) + | undefined; @property({ attribute: false }) accessor onContextChange!: (context: Partial) => void; @@ -403,7 +403,7 @@ export class AIChatContent extends SignalWatcher(
this._debouncedOnScroll()} diff --git a/packages/frontend/track/src/events.ts b/packages/frontend/track/src/events.ts index 70b8057210..89620fd082 100644 --- a/packages/frontend/track/src/events.ts +++ b/packages/frontend/track/src/events.ts @@ -442,6 +442,9 @@ interface PageEvents extends PageDivision { chatPanel: { chatPanelInput: ['addEmbeddingDoc']; }; + intelligence: { + chatPanelInput: ['addEmbeddingDoc']; + }; commentPanel: { $: ['createComment', 'editComment', 'deleteComment', 'resolveComment']; }; @@ -720,7 +723,7 @@ export type EventArgs = { addEmbeddingDoc: { type?: 'page' | 'edgeless'; control: 'addButton' | 'atMenu'; - method: 'doc' | 'file' | 'tags' | 'collections' | 'suggestion'; + method: 'doc' | 'cur-doc' | 'file' | 'tags' | 'collections' | 'suggestion'; }; openAttachmentInFullscreen: AttachmentEventArgs; openAttachmentInNewTab: AttachmentEventArgs; diff --git a/packages/frontend/track/src/index.ts b/packages/frontend/track/src/index.ts index 330bacd57e..e9ecbbfc47 100644 --- a/packages/frontend/track/src/index.ts +++ b/packages/frontend/track/src/index.ts @@ -1,10 +1,10 @@ import { enableAutoTrack, makeTracker } from './auto'; -import { type Events } from './events'; +import { type EventArgs, type Events } from './events'; import { mixpanel } from './mixpanel'; import { sentry } from './sentry'; export const track = makeTracker((event, props) => { mixpanel.track(event, props); }); -export { enableAutoTrack, type Events, mixpanel, sentry }; +export { enableAutoTrack, type EventArgs, type Events, mixpanel, sentry }; export default track;