@lobehub/chat 1.142.1 → 1.142.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +25 -0
- package/changelog/v1.json +9 -0
- package/package.json +1 -1
- package/packages/context-engine/src/processors/__tests__/MessageContent.test.ts +17 -17
- package/packages/context-engine/src/types.ts +4 -4
- package/packages/database/src/models/__tests__/message.test.ts +2 -2
- package/packages/database/src/models/message.ts +9 -9
- package/packages/database/src/models/topic.ts +2 -2
- package/packages/prompts/src/chains/__tests__/summaryHistory.test.ts +2 -2
- package/packages/prompts/src/chains/summaryHistory.ts +2 -2
- package/packages/prompts/src/chains/summaryTitle.ts +2 -2
- package/packages/prompts/src/contexts/supervisor/makeDecision.ts +2 -2
- package/packages/prompts/src/prompts/chatMessages/index.test.ts +11 -11
- package/packages/prompts/src/prompts/chatMessages/index.ts +13 -10
- package/packages/prompts/src/prompts/groupChat/index.test.ts +3 -4
- package/packages/prompts/src/prompts/groupChat/index.ts +3 -3
- package/packages/types/src/aiChat.ts +2 -2
- package/packages/types/src/exportConfig.ts +3 -3
- package/packages/types/src/importer.ts +2 -2
- package/packages/types/src/message/common/base.ts +0 -146
- package/packages/types/src/message/common/index.ts +2 -0
- package/packages/types/src/message/common/metadata.ts +67 -0
- package/packages/types/src/message/{tools.ts → common/tools.ts} +1 -1
- package/packages/types/src/message/common/translate.ts +4 -0
- package/packages/types/src/message/db/index.ts +2 -0
- package/packages/types/src/message/db/item.ts +29 -0
- package/packages/types/src/message/db/params.ts +57 -0
- package/packages/types/src/message/index.ts +1 -1
- package/packages/types/src/message/ui/chat.ts +9 -41
- package/packages/types/src/message/ui/extra.ts +16 -0
- package/packages/types/src/message/ui/index.ts +1 -0
- package/packages/types/src/message/ui/rag.ts +10 -0
- package/src/app/[variants]/(main)/chat/(workspace)/features/ShareButton/index.tsx +0 -3
- package/src/app/[variants]/(main)/settings/provider/features/CreateNewProvider/index.tsx +1 -2
- package/src/database/_deprecated/models/__tests__/message.test.ts +6 -6
- package/src/database/_deprecated/models/message.ts +13 -13
- package/src/features/Conversation/Error/OllamaBizError/index.tsx +2 -2
- package/src/features/Conversation/Error/index.tsx +3 -3
- package/src/features/Conversation/Messages/Assistant/Actions/index.tsx +2 -2
- package/src/features/Conversation/Messages/Assistant/Extra/index.test.tsx +2 -2
- package/src/features/Conversation/Messages/Assistant/MessageContent.tsx +2 -2
- package/src/features/Conversation/Messages/Assistant/Tool/Render/CustomRender.tsx +2 -2
- package/src/features/Conversation/Messages/Assistant/index.tsx +2 -2
- package/src/features/Conversation/Messages/Default.tsx +3 -3
- package/src/features/Conversation/Messages/Supervisor/index.tsx +2 -2
- package/src/features/Conversation/Messages/User/Actions.tsx +2 -2
- package/src/features/Conversation/Messages/User/MessageContent.tsx +2 -2
- package/src/features/Conversation/Messages/User/index.tsx +2 -2
- package/src/features/Conversation/components/ChatItem/ShareMessageModal/SharePdf/index.tsx +2 -2
- package/src/features/Conversation/components/ChatItem/ShareMessageModal/SharePdf/template.ts +2 -2
- package/src/features/Conversation/components/ShareMessageModal/ShareImage/Preview.tsx +2 -2
- package/src/features/Conversation/components/ShareMessageModal/ShareImage/index.tsx +2 -2
- package/src/features/Conversation/components/ShareMessageModal/ShareText/index.tsx +2 -2
- package/src/features/Conversation/components/ShareMessageModal/ShareText/template.test.ts +3 -3
- package/src/features/Conversation/components/ShareMessageModal/ShareText/template.ts +2 -2
- package/src/features/Conversation/components/ShareMessageModal/index.tsx +2 -2
- package/src/features/Conversation/types/index.ts +5 -5
- package/src/features/ShareModal/ShareJSON/generateMessages.test.ts +3 -3
- package/src/features/ShareModal/ShareJSON/generateMessages.ts +2 -2
- package/src/features/ShareModal/SharePdf/index.tsx +2 -2
- package/src/features/ShareModal/ShareText/template.test.ts +3 -3
- package/src/features/ShareModal/ShareText/template.ts +2 -2
- package/src/server/routers/lambda/__tests__/message.test.ts +2 -2
- package/src/server/routers/lambda/message.ts +2 -2
- package/src/services/chat/chat.test.ts +27 -25
- package/src/services/chat/contextEngineering.test.ts +21 -21
- package/src/services/chat/contextEngineering.ts +2 -2
- package/src/services/chat/index.ts +3 -3
- package/src/services/message/_deprecated.test.ts +2 -2
- package/src/services/message/_deprecated.ts +4 -4
- package/src/services/message/client.test.ts +4 -4
- package/src/services/message/client.ts +5 -5
- package/src/services/message/server.ts +3 -3
- package/src/services/message/type.ts +7 -7
- package/src/store/chat/helpers.test.ts +5 -5
- package/src/store/chat/helpers.ts +4 -5
- package/src/store/chat/initialState.ts +0 -3
- package/src/store/chat/slices/aiChat/actions/__tests__/fixtures.ts +4 -4
- package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChatV2.test.ts +2 -2
- package/src/store/chat/slices/aiChat/actions/__tests__/rag.test.ts +6 -6
- package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +6 -6
- package/src/store/chat/slices/aiChat/actions/generateAIChatV2.ts +4 -4
- package/src/store/chat/slices/aiChat/actions/generateAIGroupChat.ts +10 -6
- package/src/store/chat/slices/aiChat/actions/memory.ts +2 -2
- package/src/store/chat/slices/builtinTool/actions/__tests__/dalle.test.ts +3 -3
- package/src/store/chat/slices/builtinTool/actions/__tests__/search.test.ts +3 -3
- package/src/store/chat/slices/message/action.test.ts +13 -8
- package/src/store/chat/slices/message/action.ts +4 -4
- package/src/store/chat/slices/message/initialState.ts +2 -2
- package/src/store/chat/slices/message/reducer.test.ts +6 -6
- package/src/store/chat/slices/message/reducer.ts +7 -4
- package/src/store/chat/slices/message/selectors.test.ts +9 -9
- package/src/store/chat/slices/message/selectors.ts +9 -9
- package/src/store/chat/slices/message/supervisor.ts +2 -2
- package/src/store/chat/slices/plugin/action.test.ts +16 -13
- package/src/store/chat/slices/plugin/action.ts +5 -4
- package/src/store/chat/slices/portal/selectors.test.ts +8 -8
- package/src/store/chat/slices/thread/action.test.ts +2 -2
- package/src/store/chat/slices/thread/action.ts +9 -5
- package/src/store/chat/slices/thread/selectors/index.ts +10 -11
- package/src/store/chat/slices/thread/selectors/util.ts +2 -4
- package/src/store/chat/slices/topic/action.test.ts +6 -6
- package/src/store/chat/slices/topic/action.ts +2 -2
- package/src/store/chat/store.ts +0 -3
- package/src/store/chat/slices/share/action.test.ts +0 -22
- package/src/store/chat/slices/share/action.ts +0 -18
- package/src/store/chat/slices/share/initialState.ts +0 -7
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { AgentRuntimeErrorType, ILobeAgentRuntimeErrorType } from '@lobechat/model-runtime';
|
|
2
|
-
import { ChatErrorType,
|
|
2
|
+
import { ChatErrorType, ChatMessageError, ErrorType, UIChatMessage } from '@lobechat/types';
|
|
3
3
|
import { IPluginErrorType } from '@lobehub/chat-plugin-sdk';
|
|
4
4
|
import type { AlertProps } from '@lobehub/ui';
|
|
5
5
|
import { Skeleton } from 'antd';
|
|
@@ -87,7 +87,7 @@ export const useErrorContent = (error: any) => {
|
|
|
87
87
|
}, [error]);
|
|
88
88
|
};
|
|
89
89
|
|
|
90
|
-
const ErrorMessageExtra = memo<{ data:
|
|
90
|
+
const ErrorMessageExtra = memo<{ data: UIChatMessage }>(({ data }) => {
|
|
91
91
|
const error = data.error as ChatMessageError;
|
|
92
92
|
if (!error?.type) return;
|
|
93
93
|
|
|
@@ -126,7 +126,7 @@ const ErrorMessageExtra = memo<{ data: ChatMessage }>(({ data }) => {
|
|
|
126
126
|
return <ErrorJsonViewer error={data.error} id={data.id} />;
|
|
127
127
|
});
|
|
128
128
|
|
|
129
|
-
export default memo<{ data:
|
|
129
|
+
export default memo<{ data: UIChatMessage }>(({ data }) => (
|
|
130
130
|
<Suspense
|
|
131
131
|
fallback={
|
|
132
132
|
<ErrorActionContainer>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { ActionIconGroup, type ActionIconGroupEvent, ActionIconGroupItemType } from '@lobehub/ui';
|
|
3
3
|
import { App } from 'antd';
|
|
4
4
|
import { useSearchParams } from 'next/navigation';
|
|
@@ -17,7 +17,7 @@ import { useChatListActionsBar } from '../../../hooks/useChatListActionsBar';
|
|
|
17
17
|
import { ErrorActionsBar } from './Error';
|
|
18
18
|
|
|
19
19
|
interface AssistantActionsProps {
|
|
20
|
-
data:
|
|
20
|
+
data: UIChatMessage;
|
|
21
21
|
id: string;
|
|
22
22
|
index: number;
|
|
23
23
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { render, screen } from '@testing-library/react';
|
|
3
3
|
import { Mock, beforeEach, describe, expect, it, vi } from 'vitest';
|
|
4
4
|
|
|
@@ -24,7 +24,7 @@ vi.mock('@/store/chat', () => ({
|
|
|
24
24
|
useChatStore: vi.fn(),
|
|
25
25
|
}));
|
|
26
26
|
|
|
27
|
-
const mockData:
|
|
27
|
+
const mockData: UIChatMessage = {
|
|
28
28
|
content: 'test-content',
|
|
29
29
|
createdAt: 0,
|
|
30
30
|
id: 'abc',
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { ReactNode, memo } from 'react';
|
|
3
3
|
import { Flexbox } from 'react-layout-kit';
|
|
4
4
|
|
|
@@ -17,7 +17,7 @@ import SearchGrounding from './SearchGrounding';
|
|
|
17
17
|
import Tool from './Tool';
|
|
18
18
|
|
|
19
19
|
export const AssistantMessageContent = memo<
|
|
20
|
-
|
|
20
|
+
UIChatMessage & {
|
|
21
21
|
editableContent: ReactNode;
|
|
22
22
|
}
|
|
23
23
|
>(({ id, tools, content, chunksList, search, imageList, videoList, children, ...props }) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { ActionIcon } from '@lobehub/ui';
|
|
3
3
|
import { App } from 'antd';
|
|
4
4
|
import { Edit3Icon, PlayCircleIcon } from 'lucide-react';
|
|
@@ -24,7 +24,7 @@ const safeParseJson = (str: string): Record<string, any> => {
|
|
|
24
24
|
}
|
|
25
25
|
};
|
|
26
26
|
|
|
27
|
-
interface CustomRenderProps extends
|
|
27
|
+
interface CustomRenderProps extends UIChatMessage {
|
|
28
28
|
requestArgs?: string;
|
|
29
29
|
setShowPluginRender: (value: boolean) => void;
|
|
30
30
|
showPluginRender: boolean;
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
4
4
|
import { Tag } from '@lobehub/ui';
|
|
5
5
|
import { useResponsive } from 'antd-style';
|
|
6
6
|
import { ReactNode, memo, useCallback, useMemo } from 'react';
|
|
@@ -47,7 +47,7 @@ const isHtmlCode = (content: string, language: string) => {
|
|
|
47
47
|
};
|
|
48
48
|
const MOBILE_AVATAR_SIZE = 32;
|
|
49
49
|
|
|
50
|
-
interface AssistantMessageProps extends
|
|
50
|
+
interface AssistantMessageProps extends UIChatMessage {
|
|
51
51
|
disableEditing?: boolean;
|
|
52
52
|
index: number;
|
|
53
53
|
showTitle?: boolean;
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { ReactNode, memo } from 'react';
|
|
3
3
|
|
|
4
4
|
import BubblesLoading from '@/components/BubblesLoading';
|
|
@@ -7,7 +7,7 @@ import { useChatStore } from '@/store/chat';
|
|
|
7
7
|
import { chatSelectors } from '@/store/chat/selectors';
|
|
8
8
|
|
|
9
9
|
export const DefaultMessage = memo<
|
|
10
|
-
|
|
10
|
+
UIChatMessage & {
|
|
11
11
|
addIdOnDOM?: boolean;
|
|
12
12
|
editableContent: ReactNode;
|
|
13
13
|
isToolCallGenerating?: boolean;
|
|
@@ -22,6 +22,6 @@ export const DefaultMessage = memo<
|
|
|
22
22
|
return <div id={addIdOnDOM ? id : undefined}>{editableContent}</div>;
|
|
23
23
|
});
|
|
24
24
|
|
|
25
|
-
export const DefaultBelowMessage = memo<
|
|
25
|
+
export const DefaultBelowMessage = memo<UIChatMessage>(() => {
|
|
26
26
|
return null;
|
|
27
27
|
});
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
|
|
3
|
-
import {
|
|
3
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
4
4
|
import { ModelIcon } from '@lobehub/icons';
|
|
5
5
|
import { Button, Text } from '@lobehub/ui';
|
|
6
6
|
import { createStyles, useTheme } from 'antd-style';
|
|
@@ -54,7 +54,7 @@ const parseMarkdownTodos = (content: string): TodoData => {
|
|
|
54
54
|
};
|
|
55
55
|
};
|
|
56
56
|
|
|
57
|
-
interface SupervisorMessageProps extends
|
|
57
|
+
interface SupervisorMessageProps extends UIChatMessage {
|
|
58
58
|
disableEditing?: boolean;
|
|
59
59
|
index: number;
|
|
60
60
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { ActionIconGroup } from '@lobehub/ui';
|
|
3
3
|
import { ActionIconGroupItemType } from '@lobehub/ui/es/ActionIconGroup';
|
|
4
4
|
import { ActionIconGroupEvent } from '@lobehub/ui/es/ActionIconGroup/type';
|
|
@@ -17,7 +17,7 @@ import { InPortalThreadContext } from '../../context/InPortalThreadContext';
|
|
|
17
17
|
import { useChatListActionsBar } from '../../hooks/useChatListActionsBar';
|
|
18
18
|
|
|
19
19
|
interface UserActionsProps {
|
|
20
|
-
data:
|
|
20
|
+
data: UIChatMessage;
|
|
21
21
|
id: string;
|
|
22
22
|
index: number;
|
|
23
23
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { ReactNode, memo } from 'react';
|
|
3
3
|
import { Flexbox } from 'react-layout-kit';
|
|
4
4
|
|
|
@@ -7,7 +7,7 @@ import ImageFileListViewer from './ImageFileListViewer';
|
|
|
7
7
|
import VideoFileListViewer from './VideoFileListViewer';
|
|
8
8
|
|
|
9
9
|
export const UserMessageContent = memo<
|
|
10
|
-
|
|
10
|
+
UIChatMessage & {
|
|
11
11
|
editableContent: ReactNode;
|
|
12
12
|
}
|
|
13
13
|
>(({ id, editableContent, imageList, videoList, fileList }) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { Tag } from '@lobehub/ui';
|
|
3
3
|
import { useResponsive } from 'antd-style';
|
|
4
4
|
import { ReactNode, memo, useCallback, useMemo } from 'react';
|
|
@@ -28,7 +28,7 @@ import { UserMessageExtra } from './Extra';
|
|
|
28
28
|
import { MarkdownRender as UserMarkdownRender } from './MarkdownRender';
|
|
29
29
|
import { UserMessageContent } from './MessageContent';
|
|
30
30
|
|
|
31
|
-
interface UserMessageProps extends
|
|
31
|
+
interface UserMessageProps extends UIChatMessage {
|
|
32
32
|
disableEditing?: boolean;
|
|
33
33
|
index: number;
|
|
34
34
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { Button } from '@lobehub/ui';
|
|
3
3
|
import { App } from 'antd';
|
|
4
4
|
import { DownloadIcon, FileText } from 'lucide-react';
|
|
@@ -15,7 +15,7 @@ import { generateMarkdown } from './template';
|
|
|
15
15
|
import { usePdfGeneration } from './usePdfGeneration';
|
|
16
16
|
|
|
17
17
|
interface SharePdfProps {
|
|
18
|
-
message:
|
|
18
|
+
message: UIChatMessage;
|
|
19
19
|
}
|
|
20
20
|
|
|
21
21
|
const SharePdf = memo<SharePdfProps>(({ message }) => {
|
package/src/features/Conversation/components/ChatItem/ShareMessageModal/SharePdf/template.ts
CHANGED
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { template } from 'lodash-es';
|
|
3
3
|
|
|
4
4
|
import { LOADING_FLAT } from '@/const/message';
|
|
@@ -9,7 +9,7 @@ const markdownTemplate = template(`{{message.content}}`, {
|
|
|
9
9
|
});
|
|
10
10
|
|
|
11
11
|
interface MarkdownParams {
|
|
12
|
-
message:
|
|
12
|
+
message: UIChatMessage;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
15
|
export const generateMarkdown = ({ message }: MarkdownParams) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { ModelTag } from '@lobehub/icons';
|
|
3
3
|
import { Avatar } from '@lobehub/ui';
|
|
4
4
|
import { ChatHeaderTitle } from '@lobehub/ui/chat';
|
|
@@ -20,7 +20,7 @@ import { useStyles } from './style';
|
|
|
20
20
|
import { FieldType } from './type';
|
|
21
21
|
|
|
22
22
|
interface PreviewProps extends FieldType {
|
|
23
|
-
message:
|
|
23
|
+
message: UIChatMessage;
|
|
24
24
|
previewId?: string;
|
|
25
25
|
title?: string;
|
|
26
26
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { Button, Form, type FormItemProps, Segmented } from '@lobehub/ui';
|
|
3
3
|
import { Switch } from 'antd';
|
|
4
4
|
import { CopyIcon } from 'lucide-react';
|
|
@@ -23,7 +23,7 @@ const DEFAULT_FIELD_VALUE: FieldType = {
|
|
|
23
23
|
withFooter: true,
|
|
24
24
|
};
|
|
25
25
|
|
|
26
|
-
const ShareImage = memo<{ message:
|
|
26
|
+
const ShareImage = memo<{ message: UIChatMessage; mobile?: boolean; uniqueId?: string }>(
|
|
27
27
|
({ message, uniqueId }) => {
|
|
28
28
|
const currentAgentTitle = useSessionStore(sessionMetaSelectors.currentAgentTitle);
|
|
29
29
|
const [fieldValue, setFieldValue] = useState<FieldType>(DEFAULT_FIELD_VALUE);
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { Button, copyToClipboard } from '@lobehub/ui';
|
|
3
3
|
import { App } from 'antd';
|
|
4
4
|
import isEqual from 'fast-deep-equal';
|
|
@@ -17,7 +17,7 @@ import Preview from './Preview';
|
|
|
17
17
|
import { generateMarkdown } from './template';
|
|
18
18
|
|
|
19
19
|
interface ShareTextProps {
|
|
20
|
-
item:
|
|
20
|
+
item: UIChatMessage;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
const ShareText = memo<ShareTextProps>(({ item }) => {
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { describe, expect, it } from 'vitest';
|
|
3
3
|
|
|
4
4
|
import { LOADING_FLAT } from '@/const/message';
|
|
@@ -40,7 +40,7 @@ describe('generateMarkdown', () => {
|
|
|
40
40
|
createdAt: Date.now(),
|
|
41
41
|
tools: [{ name: 'calculator', result: '42' }],
|
|
42
42
|
},
|
|
43
|
-
] as
|
|
43
|
+
] as UIChatMessage[];
|
|
44
44
|
|
|
45
45
|
const defaultParams = {
|
|
46
46
|
messages: mockMessages,
|
|
@@ -66,7 +66,7 @@ describe('generateMarkdown', () => {
|
|
|
66
66
|
role: 'user',
|
|
67
67
|
createdAt: Date.now(),
|
|
68
68
|
},
|
|
69
|
-
] as
|
|
69
|
+
] as UIChatMessage[];
|
|
70
70
|
|
|
71
71
|
const result = generateMarkdown({
|
|
72
72
|
...defaultParams,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { template } from 'lodash-es';
|
|
3
3
|
|
|
4
4
|
import { LOADING_FLAT } from '@/const/message';
|
|
@@ -17,7 +17,7 @@ const markdownTemplate = template(
|
|
|
17
17
|
);
|
|
18
18
|
|
|
19
19
|
interface MarkdownParams {
|
|
20
|
-
messages:
|
|
20
|
+
messages: UIChatMessage[];
|
|
21
21
|
}
|
|
22
22
|
|
|
23
23
|
export const generateMarkdown = ({ messages }: MarkdownParams) =>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { Modal, Segmented, Tabs } from '@lobehub/ui';
|
|
3
3
|
import { memo, useId, useMemo, useState } from 'react';
|
|
4
4
|
import { useTranslation } from 'react-i18next';
|
|
@@ -18,7 +18,7 @@ enum Tab {
|
|
|
18
18
|
}
|
|
19
19
|
|
|
20
20
|
interface ShareModalProps {
|
|
21
|
-
message:
|
|
21
|
+
message: UIChatMessage;
|
|
22
22
|
onCancel: () => void;
|
|
23
23
|
open: boolean;
|
|
24
24
|
}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { type ChatItemProps } from '@lobehub/ui/chat';
|
|
3
3
|
import { FC, ReactNode } from 'react';
|
|
4
4
|
|
|
5
5
|
import { LLMRoleType } from '@/types/llm';
|
|
6
6
|
|
|
7
7
|
export type RenderRole = LLMRoleType | 'default' | 'history' | string;
|
|
8
|
-
export type RenderMessage = FC<
|
|
9
|
-
export type RenderBelowMessage = FC<
|
|
10
|
-
export type RenderMessageExtra = FC<
|
|
8
|
+
export type RenderMessage = FC<UIChatMessage & { editableContent: ReactNode }>;
|
|
9
|
+
export type RenderBelowMessage = FC<UIChatMessage>;
|
|
10
|
+
export type RenderMessageExtra = FC<UIChatMessage>;
|
|
11
11
|
export type MarkdownCustomRender = (props: {
|
|
12
12
|
displayMode: 'chat' | 'docs';
|
|
13
13
|
dom: ReactNode;
|
|
@@ -15,7 +15,7 @@ export type MarkdownCustomRender = (props: {
|
|
|
15
15
|
text: string;
|
|
16
16
|
}) => ReactNode;
|
|
17
17
|
|
|
18
|
-
export type RenderItem = FC<{ key: string } &
|
|
18
|
+
export type RenderItem = FC<{ key: string } & UIChatMessage & ListItemProps>;
|
|
19
19
|
|
|
20
20
|
export interface ListItemProps {
|
|
21
21
|
groupNav?: ChatItemProps['avatarAddon'];
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { describe, expect, it } from 'vitest';
|
|
3
3
|
|
|
4
4
|
import { LOADING_FLAT } from '@/const/message';
|
|
@@ -33,7 +33,7 @@ describe('generateMessages', () => {
|
|
|
33
33
|
createdAt: Date.now(),
|
|
34
34
|
tool_call_id: 'tool1',
|
|
35
35
|
},
|
|
36
|
-
] as
|
|
36
|
+
] as UIChatMessage[];
|
|
37
37
|
|
|
38
38
|
it('should filter out loading messages', () => {
|
|
39
39
|
const result = generateMessages({
|
|
@@ -109,7 +109,7 @@ describe('generateMessages', () => {
|
|
|
109
109
|
role: 'user',
|
|
110
110
|
createdAt: Date.now(),
|
|
111
111
|
},
|
|
112
|
-
] as
|
|
112
|
+
] as UIChatMessage[];
|
|
113
113
|
|
|
114
114
|
const result = generateMessages({
|
|
115
115
|
messages: messagesWithSpaces,
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
|
|
3
3
|
import { LOADING_FLAT } from '@/const/message';
|
|
4
4
|
|
|
5
5
|
import { FieldType } from './type';
|
|
6
6
|
|
|
7
7
|
interface JSONParams extends FieldType {
|
|
8
|
-
messages:
|
|
8
|
+
messages: UIChatMessage[];
|
|
9
9
|
systemRole: string;
|
|
10
10
|
}
|
|
11
11
|
export const generateMessages = ({
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { Button, Form, type FormItemProps } from '@lobehub/ui';
|
|
3
3
|
import { App, Switch } from 'antd';
|
|
4
4
|
import isEqual from 'fast-deep-equal';
|
|
@@ -27,7 +27,7 @@ const DEFAULT_FIELD_VALUE: FieldType = {
|
|
|
27
27
|
withSystemRole: false,
|
|
28
28
|
};
|
|
29
29
|
|
|
30
|
-
const SharePdf = memo((props: { message?:
|
|
30
|
+
const SharePdf = memo((props: { message?: UIChatMessage }) => {
|
|
31
31
|
const [fieldValue, setFieldValue] = useState(DEFAULT_FIELD_VALUE);
|
|
32
32
|
const { t } = useTranslation(['chat', 'common']);
|
|
33
33
|
const { styles } = useStyles();
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { describe, expect, it } from 'vitest';
|
|
3
3
|
|
|
4
4
|
import { LOADING_FLAT } from '@/const/message';
|
|
@@ -40,7 +40,7 @@ describe('generateMarkdown', () => {
|
|
|
40
40
|
createdAt: Date.now(),
|
|
41
41
|
tools: [{ name: 'calculator', result: '42' }],
|
|
42
42
|
},
|
|
43
|
-
] as
|
|
43
|
+
] as UIChatMessage[];
|
|
44
44
|
|
|
45
45
|
const defaultParams = {
|
|
46
46
|
messages: mockMessages,
|
|
@@ -166,7 +166,7 @@ describe('generateMarkdown', () => {
|
|
|
166
166
|
role: 'user',
|
|
167
167
|
createdAt: Date.now(),
|
|
168
168
|
},
|
|
169
|
-
] as
|
|
169
|
+
] as UIChatMessage[];
|
|
170
170
|
|
|
171
171
|
const result = generateMarkdown({
|
|
172
172
|
...defaultParams,
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { UIChatMessage } from '@lobechat/types';
|
|
2
2
|
import { template } from 'lodash-es';
|
|
3
3
|
|
|
4
4
|
import { LOADING_FLAT } from '@/const/message';
|
|
@@ -53,7 +53,7 @@ const markdownTemplate = template(
|
|
|
53
53
|
);
|
|
54
54
|
|
|
55
55
|
interface MarkdownParams extends FieldType {
|
|
56
|
-
messages:
|
|
56
|
+
messages: UIChatMessage[];
|
|
57
57
|
systemRole: string;
|
|
58
58
|
title: string;
|
|
59
59
|
}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { CreateMessageParams, UIChatMessage, UpdateMessageRAGParams } from '@lobechat/types';
|
|
2
2
|
import { describe, expect, it, vi } from 'vitest';
|
|
3
3
|
|
|
4
4
|
import { MessageModel } from '@/database/models/message';
|
|
@@ -153,7 +153,7 @@ describe('messageRouter', () => {
|
|
|
153
153
|
{
|
|
154
154
|
id: 'msg1',
|
|
155
155
|
meta: {},
|
|
156
|
-
} as
|
|
156
|
+
} as UIChatMessage,
|
|
157
157
|
]);
|
|
158
158
|
vi.mocked(MessageModel).mockImplementation(
|
|
159
159
|
() =>
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { BatchTaskResult,
|
|
1
|
+
import { BatchTaskResult, UIChatMessage, UpdateMessageRAGParamsSchema } from '@lobechat/types';
|
|
2
2
|
import { z } from 'zod';
|
|
3
3
|
|
|
4
4
|
import { MessageModel } from '@/database/models/message';
|
|
@@ -8,7 +8,7 @@ import { authedProcedure, publicProcedure, router } from '@/libs/trpc/lambda';
|
|
|
8
8
|
import { serverDatabase } from '@/libs/trpc/lambda/middleware';
|
|
9
9
|
import { FileService } from '@/server/services/file';
|
|
10
10
|
|
|
11
|
-
type ChatMessageList =
|
|
11
|
+
type ChatMessageList = UIChatMessage[];
|
|
12
12
|
|
|
13
13
|
const messageProcedure = authedProcedure.use(serverDatabase).use(async (opts) => {
|
|
14
14
|
const { ctx } = opts;
|