mirror of
https://github.com/toeverything/AFFiNE.git
synced 2026-02-11 20:08:37 +00:00
chore: bump blocksuite (#6975)
## Features - https://github.com/toeverything/BlockSuite/pull/7085 @regischen - https://github.com/toeverything/BlockSuite/pull/7077 @fourdim ## Bugfix - https://github.com/toeverything/BlockSuite/pull/7087 @Mirone - https://github.com/toeverything/BlockSuite/pull/7076 @donteatfriedrice
This commit is contained in:
@@ -18,13 +18,13 @@
|
||||
"@affine/graphql": "workspace:*",
|
||||
"@affine/i18n": "workspace:*",
|
||||
"@affine/templates": "workspace:*",
|
||||
"@blocksuite/block-std": "0.15.0-canary-202405161332-f0fb4ad",
|
||||
"@blocksuite/blocks": "0.15.0-canary-202405161332-f0fb4ad",
|
||||
"@blocksuite/global": "0.15.0-canary-202405161332-f0fb4ad",
|
||||
"@blocksuite/block-std": "0.15.0-canary-202405170804-01f8131",
|
||||
"@blocksuite/blocks": "0.15.0-canary-202405170804-01f8131",
|
||||
"@blocksuite/global": "0.15.0-canary-202405170804-01f8131",
|
||||
"@blocksuite/icons": "2.1.50",
|
||||
"@blocksuite/inline": "0.15.0-canary-202405161332-f0fb4ad",
|
||||
"@blocksuite/presets": "0.15.0-canary-202405161332-f0fb4ad",
|
||||
"@blocksuite/store": "0.15.0-canary-202405161332-f0fb4ad",
|
||||
"@blocksuite/inline": "0.15.0-canary-202405170804-01f8131",
|
||||
"@blocksuite/presets": "0.15.0-canary-202405170804-01f8131",
|
||||
"@blocksuite/store": "0.15.0-canary-202405170804-01f8131",
|
||||
"@dnd-kit/core": "^6.1.0",
|
||||
"@dnd-kit/modifiers": "^7.0.0",
|
||||
"@dnd-kit/sortable": "^8.0.0",
|
||||
|
||||
@@ -133,11 +133,13 @@ export class CopilotClient {
|
||||
signal,
|
||||
}: {
|
||||
sessionId: string;
|
||||
messageId: string;
|
||||
messageId?: string;
|
||||
signal?: AbortSignal;
|
||||
}) {
|
||||
const url = new URL(`${this.backendUrl}/api/copilot/chat/${sessionId}`);
|
||||
url.searchParams.set('messageId', messageId);
|
||||
if (messageId) {
|
||||
url.searchParams.set('messageId', messageId);
|
||||
}
|
||||
const response = await fetch(url.toString(), { signal });
|
||||
return response.text();
|
||||
}
|
||||
@@ -148,21 +150,23 @@ export class CopilotClient {
|
||||
messageId,
|
||||
}: {
|
||||
sessionId: string;
|
||||
messageId: string;
|
||||
messageId?: string;
|
||||
}) {
|
||||
const url = new URL(
|
||||
`${this.backendUrl}/api/copilot/chat/${sessionId}/stream`
|
||||
);
|
||||
url.searchParams.set('messageId', messageId);
|
||||
if (messageId) url.searchParams.set('messageId', messageId);
|
||||
return new EventSource(url.toString());
|
||||
}
|
||||
|
||||
// Text or image to images
|
||||
imagesStream(messageId: string, sessionId: string, seed?: string) {
|
||||
imagesStream(sessionId: string, messageId?: string, seed?: string) {
|
||||
const url = new URL(
|
||||
`${this.backendUrl}/api/copilot/chat/${sessionId}/images`
|
||||
);
|
||||
url.searchParams.set('messageId', messageId);
|
||||
if (messageId) {
|
||||
url.searchParams.set('messageId', messageId);
|
||||
}
|
||||
if (seed) {
|
||||
url.searchParams.set('seed', seed);
|
||||
}
|
||||
|
||||
@@ -1,3 +1,5 @@
|
||||
import { assertExists } from '@blocksuite/global/utils';
|
||||
import { AIProvider } from '@blocksuite/presets';
|
||||
import { partition } from 'lodash-es';
|
||||
|
||||
import { CopilotClient } from './copilot-client';
|
||||
@@ -19,6 +21,7 @@ export type TextToTextOptions = {
|
||||
timeout?: number;
|
||||
stream?: boolean;
|
||||
signal?: AbortSignal;
|
||||
retry?: boolean;
|
||||
};
|
||||
|
||||
export type ToImageOptions = TextToTextOptions & {
|
||||
@@ -47,6 +50,7 @@ async function createSessionMessage({
|
||||
sessionId: providedSessionId,
|
||||
attachments,
|
||||
params,
|
||||
retry = false,
|
||||
}: TextToTextOptions) {
|
||||
if (!promptName && !providedSessionId) {
|
||||
throw new Error('promptName or sessionId is required');
|
||||
@@ -83,6 +87,11 @@ async function createSessionMessage({
|
||||
})
|
||||
);
|
||||
}
|
||||
if (retry)
|
||||
return {
|
||||
sessionId,
|
||||
};
|
||||
|
||||
const messageId = await client.createMessage(options);
|
||||
return {
|
||||
messageId,
|
||||
@@ -101,23 +110,41 @@ export function textToText({
|
||||
stream,
|
||||
signal,
|
||||
timeout = TIMEOUT,
|
||||
retry = false,
|
||||
}: TextToTextOptions) {
|
||||
let _sessionId: string;
|
||||
let _messageId: string | undefined;
|
||||
|
||||
if (stream) {
|
||||
return {
|
||||
[Symbol.asyncIterator]: async function* () {
|
||||
const message = await createSessionMessage({
|
||||
docId,
|
||||
workspaceId,
|
||||
promptName,
|
||||
content,
|
||||
attachments,
|
||||
params,
|
||||
sessionId,
|
||||
});
|
||||
if (retry) {
|
||||
const retrySessionId =
|
||||
(await sessionId) ?? AIProvider.LAST_ACTION_SESSIONID;
|
||||
assertExists(retrySessionId, 'retry sessionId is required');
|
||||
_sessionId = retrySessionId;
|
||||
_messageId = undefined;
|
||||
} else {
|
||||
const message = await createSessionMessage({
|
||||
docId,
|
||||
workspaceId,
|
||||
promptName,
|
||||
content,
|
||||
attachments,
|
||||
params,
|
||||
sessionId,
|
||||
retry,
|
||||
});
|
||||
_sessionId = message.sessionId;
|
||||
_messageId = message.messageId;
|
||||
}
|
||||
|
||||
const eventSource = client.chatTextStream({
|
||||
sessionId: message.sessionId,
|
||||
messageId: message.messageId,
|
||||
sessionId: _sessionId,
|
||||
messageId: _messageId,
|
||||
});
|
||||
AIProvider.LAST_ACTION_SESSIONID = _sessionId;
|
||||
|
||||
if (signal) {
|
||||
if (signal.aborted) {
|
||||
eventSource.close();
|
||||
@@ -144,20 +171,33 @@ export function textToText({
|
||||
throw new Error('Timeout');
|
||||
})
|
||||
: null,
|
||||
createSessionMessage({
|
||||
docId,
|
||||
workspaceId,
|
||||
promptName,
|
||||
content,
|
||||
attachments,
|
||||
params,
|
||||
sessionId,
|
||||
}).then(message => {
|
||||
(async function () {
|
||||
if (retry) {
|
||||
const retrySessionId =
|
||||
(await sessionId) ?? AIProvider.LAST_ACTION_SESSIONID;
|
||||
assertExists(retrySessionId, 'retry sessionId is required');
|
||||
_sessionId = retrySessionId;
|
||||
_messageId = undefined;
|
||||
} else {
|
||||
const message = await createSessionMessage({
|
||||
docId,
|
||||
workspaceId,
|
||||
promptName,
|
||||
content,
|
||||
attachments,
|
||||
params,
|
||||
sessionId,
|
||||
});
|
||||
_sessionId = message.sessionId;
|
||||
_messageId = message.messageId;
|
||||
}
|
||||
|
||||
AIProvider.LAST_ACTION_SESSIONID = _sessionId;
|
||||
return client.chatText({
|
||||
sessionId: message.sessionId,
|
||||
messageId: message.messageId,
|
||||
sessionId: _sessionId,
|
||||
messageId: _messageId,
|
||||
});
|
||||
}),
|
||||
})(),
|
||||
]);
|
||||
}
|
||||
}
|
||||
@@ -173,21 +213,37 @@ export function toImage({
|
||||
attachments,
|
||||
params,
|
||||
seed,
|
||||
sessionId,
|
||||
signal,
|
||||
timeout = TIMEOUT,
|
||||
retry = false,
|
||||
}: ToImageOptions) {
|
||||
let _sessionId: string;
|
||||
let _messageId: string | undefined;
|
||||
return {
|
||||
[Symbol.asyncIterator]: async function* () {
|
||||
const { messageId, sessionId } = await createSessionMessage({
|
||||
docId,
|
||||
workspaceId,
|
||||
promptName,
|
||||
content,
|
||||
attachments,
|
||||
params,
|
||||
});
|
||||
if (retry) {
|
||||
const retrySessionId =
|
||||
(await sessionId) ?? AIProvider.LAST_ACTION_SESSIONID;
|
||||
assertExists(retrySessionId, 'retry sessionId is required');
|
||||
_sessionId = retrySessionId;
|
||||
_messageId = undefined;
|
||||
} else {
|
||||
const { messageId, sessionId } = await createSessionMessage({
|
||||
docId,
|
||||
workspaceId,
|
||||
promptName,
|
||||
content,
|
||||
attachments,
|
||||
params,
|
||||
});
|
||||
_sessionId = sessionId;
|
||||
_messageId = messageId;
|
||||
}
|
||||
|
||||
const eventSource = client.imagesStream(_sessionId, _messageId, seed);
|
||||
AIProvider.LAST_ACTION_SESSIONID = _sessionId;
|
||||
|
||||
const eventSource = client.imagesStream(messageId, sessionId, seed);
|
||||
for await (const event of toTextStream(eventSource, {
|
||||
timeout,
|
||||
signal,
|
||||
|
||||
@@ -219,6 +219,7 @@ function setupAIProvider() {
|
||||
});
|
||||
|
||||
AIProvider.provide('expandMindmap', options => {
|
||||
assertExists(options.input, 'expandMindmap action requires input');
|
||||
return textToText({
|
||||
...options,
|
||||
params: {
|
||||
|
||||
Reference in New Issue
Block a user