Skip to content

Commit

Permalink
chore: bump blocksuite (#6448)
Browse files Browse the repository at this point in the history
## Features
- toeverything/blocksuite#6679 @pengx17
- toeverything/blocksuite#6620 @doouding
- toeverything/blocksuite#6602 @golok727
- toeverything/blocksuite#6661 @Flrande
- toeverything/blocksuite#6591 @fundon
- toeverything/blocksuite#6634 @golok727
- toeverything/blocksuite#6626 @regischen
- toeverything/blocksuite#6630 @Saul-Mirone
- toeverything/blocksuite#6605 @donteatfriedrice
- toeverything/blocksuite#6614 @zzj3720
- toeverything/blocksuite#6508 @doouding
- toeverything/blocksuite#6578 @donteatfriedrice
- toeverything/blocksuite#6572 @zzj3720
- toeverything/blocksuite#6571 @golok727
- toeverything/blocksuite#6573 @fundon
- toeverything/blocksuite#6580 @Flrande
- toeverything/blocksuite#6540 @golok727
- toeverything/blocksuite#6567 @Flrande
- toeverything/blocksuite#6565 @zzj3720
- toeverything/blocksuite#6561 @zzj3720

## Bugfix
- toeverything/blocksuite#6677 @donteatfriedrice
- toeverything/blocksuite#6681 @fundon
- toeverything/blocksuite#6673 @fundon
- toeverything/blocksuite#6652 @fundon
- toeverything/blocksuite#6641 @fourdim
- toeverything/blocksuite#6649 @golok727
- toeverything/blocksuite#6648 @doouding
- toeverything/blocksuite#6662 @Flrande
- toeverything/blocksuite#6659 @zkwolf
- toeverything/blocksuite#6644 @doouding
- toeverything/blocksuite#6633 @golok727
- toeverything/blocksuite#6632 @golok727
- toeverything/blocksuite#6622 @RubaXa
- toeverything/blocksuite#6622 @RubaXa
- toeverything/blocksuite#6622 @RubaXa
- toeverything/blocksuite#6622 @RubaXa
- toeverything/blocksuite#6622 @RubaXa
- toeverything/blocksuite#6600 @fourdim
- toeverything/blocksuite#6617 @zzj3720
- toeverything/blocksuite#6618 @Flrande
- toeverything/blocksuite#6576 @fundon
- toeverything/blocksuite#6595 @fundon
- toeverything/blocksuite#6596 @zzj3720
- toeverything/blocksuite#6574 @fundon
- toeverything/blocksuite#6593 @Saul-Mirone
- toeverything/blocksuite#6588 @zzj3720
- toeverything/blocksuite#6590 @zzj3720
- toeverything/blocksuite#6589 @zzj3720
- toeverything/blocksuite#6584 @lawvs
- toeverything/blocksuite#6579 @fundon
- toeverything/blocksuite#6538 @golok727
- toeverything/blocksuite#6570 @zzj3720
- toeverything/blocksuite#6569 @zzj3720
- toeverything/blocksuite#6564 @zzj3720
- toeverything/blocksuite#6563 @zzj3720

## Refactor
- toeverything/blocksuite#6683 @doodlewind
- toeverything/blocksuite#6668 @Flrande
- toeverything/blocksuite#6635 @donteatfriedrice
- toeverything/blocksuite#6653 @fundon
- toeverything/blocksuite#6615 @Flrande
- toeverything/blocksuite#6534 @Saul-Mirone
- toeverything/blocksuite#6553 @golok727

## Misc
- chore(examples): cleanup types
- toeverything/blocksuite#6664 @fourdim
- toeverything/blocksuite#6657 @fourdim
- toeverything/blocksuite#6654 @fourdim
- toeverything/blocksuite#6587 @Saul-Mirone
- toeverything/blocksuite#6562 @donteatfriedrice
  • Loading branch information
EYHN committed Apr 10, 2024
1 parent 9f349a2 commit c92bec0
Show file tree
Hide file tree
Showing 21 changed files with 975 additions and 168 deletions.
4 changes: 2 additions & 2 deletions packages/common/env/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@
"private": true,
"type": "module",
"devDependencies": {
"@blocksuite/global": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/store": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/global": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/store": "0.14.0-canary-202404090831-25c5310",
"react": "18.2.0",
"react-dom": "18.2.0",
"vitest": "1.4.0"
Expand Down
10 changes: 5 additions & 5 deletions packages/common/infra/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -11,9 +11,9 @@
"@affine/debug": "workspace:*",
"@affine/env": "workspace:*",
"@affine/templates": "workspace:*",
"@blocksuite/blocks": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/global": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/store": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/blocks": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/global": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/store": "0.14.0-canary-202404090831-25c5310",
"@datastructures-js/binary-search-tree": "^5.3.2",
"foxact": "^0.2.31",
"jotai": "^2.6.5",
Expand All @@ -28,8 +28,8 @@
"devDependencies": {
"@affine-test/fixtures": "workspace:*",
"@affine/templates": "workspace:*",
"@blocksuite/block-std": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/presets": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/block-std": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/presets": "0.14.0-canary-202404090831-25c5310",
"@testing-library/react": "^14.2.1",
"async-call-rpc": "^6.4.0",
"react": "^18.2.0",
Expand Down
6 changes: 3 additions & 3 deletions packages/common/y-indexeddb/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -32,14 +32,14 @@
}
},
"dependencies": {
"@blocksuite/global": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/global": "0.14.0-canary-202404090831-25c5310",
"idb": "^8.0.0",
"nanoid": "^5.0.6",
"y-provider": "workspace:*"
},
"devDependencies": {
"@blocksuite/blocks": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/store": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/blocks": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/store": "0.14.0-canary-202404090831-25c5310",
"fake-indexeddb": "^5.0.2",
"vite": "^5.1.4",
"vite-plugin-dts": "3.7.3",
Expand Down
2 changes: 1 addition & 1 deletion packages/common/y-provider/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -24,7 +24,7 @@
"build": "vite build"
},
"devDependencies": {
"@blocksuite/store": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/store": "0.14.0-canary-202404090831-25c5310",
"vite": "^5.1.4",
"vite-plugin-dts": "3.7.3",
"vitest": "1.4.0",
Expand Down
10 changes: 5 additions & 5 deletions packages/frontend/component/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -75,12 +75,12 @@
"zod": "^3.22.4"
},
"devDependencies": {
"@blocksuite/block-std": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/blocks": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/global": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/block-std": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/blocks": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/global": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/icons": "2.1.46",
"@blocksuite/presets": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/store": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/presets": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/store": "0.14.0-canary-202404090831-25c5310",
"@storybook/addon-actions": "^7.6.17",
"@storybook/addon-essentials": "^7.6.17",
"@storybook/addon-interactions": "^7.6.17",
Expand Down
12 changes: 6 additions & 6 deletions packages/frontend/core/package.json
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,13 @@
"@affine/i18n": "workspace:*",
"@affine/templates": "workspace:*",
"@affine/workspace-impl": "workspace:*",
"@blocksuite/block-std": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/blocks": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/global": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/block-std": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/blocks": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/global": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/icons": "2.1.46",
"@blocksuite/inline": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/presets": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/store": "0.14.0-canary-202403250855-4171ecd",
"@blocksuite/inline": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/presets": "0.14.0-canary-202404090831-25c5310",
"@blocksuite/store": "0.14.0-canary-202404090831-25c5310",
"@dnd-kit/core": "^6.1.0",
"@dnd-kit/modifiers": "^7.0.0",
"@dnd-kit/sortable": "^8.0.0",
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,121 @@
import { assertExists } from '@blocksuite/global/utils';
import { AIProvider } from '@blocksuite/presets';

import { textToTextStream } from './request';

export function setupAIProvider() {
AIProvider.provideAction('chat', options => {
assertExists(options.stream);
return textToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
prompt: options.input,
});
});

AIProvider.provideAction('summary', options => {
assertExists(options.stream);
const prompt = `
Summarize the key points from the following content in a clear and concise manner,
suitable for a reader who is seeking a quick understanding of the original content.
Ensure to capture the main ideas and any significant details without unnecessary elaboration:
${options.input}
`;
return textToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
prompt,
});
});

AIProvider.provideAction('translate', options => {
assertExists(options.stream);
const prompt = `Translate the following content to ${options.lang}: ${options.input}`;
return textToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
prompt,
});
});

AIProvider.provideAction('changeTone', options => {
assertExists(options.stream);
const prompt = `Change the tone of the following content to ${options.tone}: ${options.input}`;
return textToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
prompt,
});
});

AIProvider.provideAction('improveWriting', options => {
assertExists(options.stream);
const prompt = `Improve the writing of the following content: ${options.input}`;
return textToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
prompt,
});
});

AIProvider.provideAction('improveGrammar', options => {
assertExists(options.stream);
const prompt = `Improve the grammar of the following content: ${options.input}`;
return textToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
prompt,
});
});

AIProvider.provideAction('fixSpelling', options => {
assertExists(options.stream);
const prompt = `Fix the spelling of the following content: ${options.input}`;
return textToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
prompt,
});
});

AIProvider.provideAction('createHeadings', options => {
assertExists(options.stream);
const prompt = `Create headings for the following content: ${options.input}`;
return textToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
prompt,
});
});

AIProvider.provideAction('makeLonger', options => {
assertExists(options.stream);
const prompt = `Make the following content longer: ${options.input}`;
return textToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
prompt,
});
});

AIProvider.provideAction('makeShorter', options => {
assertExists(options.stream);
const prompt = `Make the following content shorter: ${options.input}`;
return textToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
prompt,
});
});

AIProvider.provideAction('checkCodeErrors', options => {
assertExists(options.stream);
const prompt = `Check the code errors in the following content: ${options.input}`;
return textToTextStream({
docId: options.docId,
workspaceId: options.workspaceId,
prompt,
});
});
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,27 @@
import { getBaseUrl } from '@affine/graphql';
import { CopilotClient, toTextStream } from '@blocksuite/presets';

const TIMEOUT = 5000;

export function textToTextStream({
docId,
workspaceId,
prompt,
}: {
docId: string;
workspaceId: string;
prompt: string;
}): BlockSuitePresets.TextStream {
const client = new CopilotClient(getBaseUrl());
return {
[Symbol.asyncIterator]: async function* () {
const session = await client.createSession({
workspaceId,
docId,
promptName: 'Summary', // placeholder
});
const eventSource = client.textToTextStream(prompt, session);
yield* toTextStream(eventSource, { timeout: TIMEOUT });
},
};
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
import { getAISpecs } from '@blocksuite/presets';

import { setupAIProvider } from './provider';

export function getParsedAISpecs() {
setupAIProvider();
return getAISpecs();
}
Original file line number Diff line number Diff line change
Expand Up @@ -4,14 +4,19 @@ import type { ParagraphService, RootService } from '@blocksuite/blocks';
import {
AttachmentService,
CanvasTextFonts,
EdgelessEditorBlockSpecs,
EdgelessRootService,
PageEditorBlockSpecs,
PageRootService,
} from '@blocksuite/blocks';
import bytes from 'bytes';
import type { TemplateResult } from 'lit';

import { getParsedAISpecs } from './ai/spec';

const {
pageModeSpecs: PageEditorBlockSpecs,
edgelessModeSpecs: EdgelessEditorBlockSpecs,
} = getParsedAISpecs();

class CustomAttachmentService extends AttachmentService {
override mounted(): void {
// blocksuite default max file size is 10MB, we override it to 2GB
Expand Down
8 changes: 7 additions & 1 deletion packages/frontend/core/src/hooks/affine/use-current-user.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import { DebugLogger } from '@affine/debug';
import { getBaseUrl } from '@affine/graphql';
import { AIProvider } from '@blocksuite/presets';
import { useEffect, useMemo, useReducer } from 'react';
import useSWR from 'swr';

Expand Down Expand Up @@ -149,7 +150,12 @@ export function useCurrentUser(): CheckedUser {
// maybe lift user state up to global state?
useEffect(() => {
if (session.user) {
dispatcher({ type: 'update', payload: session.user });
const user = session.user;
dispatcher({ type: 'update', payload: user });
// todo: move this to a better place!
AIProvider.provideUserInfo(() => {
return user;
});
} else {
dispatcher({ type: 'fetchError', payload: null });
}
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
import type { AffineEditorContainer } from '@blocksuite/presets';

export type SidebarTabName = 'outline' | 'frame' | 'copilot' | 'journal';
export type SidebarTabName = 'outline' | 'frame' | 'chat' | 'journal';

export interface SidebarTabProps {
editor: AffineEditorContainer | null;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
import type { SidebarTab } from './sidebar-tab';
import { copilotTab } from './tabs/copilot';
import { chatTab } from './tabs/chat';
import { framePanelTab } from './tabs/frame';
import { journalTab } from './tabs/journal';
import { outlineTab } from './tabs/outline';

// the list of all possible tabs in affine.
// order matters (determines the order of the tabs)
export const sidebarTabs: SidebarTab[] = [
chatTab,
journalTab,
outlineTab,
framePanelTab,
copilotTab,
];
Original file line number Diff line number Diff line change
@@ -0,0 +1,40 @@
import { assertExists } from '@blocksuite/global/utils';
import { AiIcon } from '@blocksuite/icons';
import { ChatPanel } from '@blocksuite/presets';
import { useCallback, useRef } from 'react';

import type { SidebarTab, SidebarTabProps } from '../sidebar-tab';
import * as styles from './chat.css';

// A wrapper for CopilotPanel
const EditorChatPanel = ({ editor }: SidebarTabProps) => {
const chatPanelRef = useRef<ChatPanel | null>(null);

const onRefChange = useCallback((container: HTMLDivElement | null) => {
if (container) {
assertExists(chatPanelRef.current, 'chat panel should be initialized');
container.append(chatPanelRef.current);
}
}, []);

if (!editor) {
return;
}

if (!chatPanelRef.current) {
chatPanelRef.current = new ChatPanel();
}

if (editor !== chatPanelRef.current?.editor) {
(chatPanelRef.current as ChatPanel).editor = editor;
// (copilotPanelRef.current as CopilotPanel).fitPadding = [20, 20, 20, 20];
}

return <div className={styles.root} ref={onRefChange} />;
};

export const chatTab: SidebarTab = {
name: 'chat',
icon: <AiIcon />,
Component: EditorChatPanel,
};

0 comments on commit c92bec0

Please sign in to comment.