@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.
Files changed (107) hide show
  1. package/CHANGELOG.md +25 -0
  2. package/changelog/v1.json +9 -0
  3. package/package.json +1 -1
  4. package/packages/context-engine/src/processors/__tests__/MessageContent.test.ts +17 -17
  5. package/packages/context-engine/src/types.ts +4 -4
  6. package/packages/database/src/models/__tests__/message.test.ts +2 -2
  7. package/packages/database/src/models/message.ts +9 -9
  8. package/packages/database/src/models/topic.ts +2 -2
  9. package/packages/prompts/src/chains/__tests__/summaryHistory.test.ts +2 -2
  10. package/packages/prompts/src/chains/summaryHistory.ts +2 -2
  11. package/packages/prompts/src/chains/summaryTitle.ts +2 -2
  12. package/packages/prompts/src/contexts/supervisor/makeDecision.ts +2 -2
  13. package/packages/prompts/src/prompts/chatMessages/index.test.ts +11 -11
  14. package/packages/prompts/src/prompts/chatMessages/index.ts +13 -10
  15. package/packages/prompts/src/prompts/groupChat/index.test.ts +3 -4
  16. package/packages/prompts/src/prompts/groupChat/index.ts +3 -3
  17. package/packages/types/src/aiChat.ts +2 -2
  18. package/packages/types/src/exportConfig.ts +3 -3
  19. package/packages/types/src/importer.ts +2 -2
  20. package/packages/types/src/message/common/base.ts +0 -146
  21. package/packages/types/src/message/common/index.ts +2 -0
  22. package/packages/types/src/message/common/metadata.ts +67 -0
  23. package/packages/types/src/message/{tools.ts → common/tools.ts} +1 -1
  24. package/packages/types/src/message/common/translate.ts +4 -0
  25. package/packages/types/src/message/db/index.ts +2 -0
  26. package/packages/types/src/message/db/item.ts +29 -0
  27. package/packages/types/src/message/db/params.ts +57 -0
  28. package/packages/types/src/message/index.ts +1 -1
  29. package/packages/types/src/message/ui/chat.ts +9 -41
  30. package/packages/types/src/message/ui/extra.ts +16 -0
  31. package/packages/types/src/message/ui/index.ts +1 -0
  32. package/packages/types/src/message/ui/rag.ts +10 -0
  33. package/src/app/[variants]/(main)/chat/(workspace)/features/ShareButton/index.tsx +0 -3
  34. package/src/app/[variants]/(main)/settings/provider/features/CreateNewProvider/index.tsx +1 -2
  35. package/src/database/_deprecated/models/__tests__/message.test.ts +6 -6
  36. package/src/database/_deprecated/models/message.ts +13 -13
  37. package/src/features/Conversation/Error/OllamaBizError/index.tsx +2 -2
  38. package/src/features/Conversation/Error/index.tsx +3 -3
  39. package/src/features/Conversation/Messages/Assistant/Actions/index.tsx +2 -2
  40. package/src/features/Conversation/Messages/Assistant/Extra/index.test.tsx +2 -2
  41. package/src/features/Conversation/Messages/Assistant/MessageContent.tsx +2 -2
  42. package/src/features/Conversation/Messages/Assistant/Tool/Render/CustomRender.tsx +2 -2
  43. package/src/features/Conversation/Messages/Assistant/index.tsx +2 -2
  44. package/src/features/Conversation/Messages/Default.tsx +3 -3
  45. package/src/features/Conversation/Messages/Supervisor/index.tsx +2 -2
  46. package/src/features/Conversation/Messages/User/Actions.tsx +2 -2
  47. package/src/features/Conversation/Messages/User/MessageContent.tsx +2 -2
  48. package/src/features/Conversation/Messages/User/index.tsx +2 -2
  49. package/src/features/Conversation/components/ChatItem/ShareMessageModal/SharePdf/index.tsx +2 -2
  50. package/src/features/Conversation/components/ChatItem/ShareMessageModal/SharePdf/template.ts +2 -2
  51. package/src/features/Conversation/components/ShareMessageModal/ShareImage/Preview.tsx +2 -2
  52. package/src/features/Conversation/components/ShareMessageModal/ShareImage/index.tsx +2 -2
  53. package/src/features/Conversation/components/ShareMessageModal/ShareText/index.tsx +2 -2
  54. package/src/features/Conversation/components/ShareMessageModal/ShareText/template.test.ts +3 -3
  55. package/src/features/Conversation/components/ShareMessageModal/ShareText/template.ts +2 -2
  56. package/src/features/Conversation/components/ShareMessageModal/index.tsx +2 -2
  57. package/src/features/Conversation/types/index.ts +5 -5
  58. package/src/features/ShareModal/ShareJSON/generateMessages.test.ts +3 -3
  59. package/src/features/ShareModal/ShareJSON/generateMessages.ts +2 -2
  60. package/src/features/ShareModal/SharePdf/index.tsx +2 -2
  61. package/src/features/ShareModal/ShareText/template.test.ts +3 -3
  62. package/src/features/ShareModal/ShareText/template.ts +2 -2
  63. package/src/server/routers/lambda/__tests__/message.test.ts +2 -2
  64. package/src/server/routers/lambda/message.ts +2 -2
  65. package/src/services/chat/chat.test.ts +27 -25
  66. package/src/services/chat/contextEngineering.test.ts +21 -21
  67. package/src/services/chat/contextEngineering.ts +2 -2
  68. package/src/services/chat/index.ts +3 -3
  69. package/src/services/message/_deprecated.test.ts +2 -2
  70. package/src/services/message/_deprecated.ts +4 -4
  71. package/src/services/message/client.test.ts +4 -4
  72. package/src/services/message/client.ts +5 -5
  73. package/src/services/message/server.ts +3 -3
  74. package/src/services/message/type.ts +7 -7
  75. package/src/store/chat/helpers.test.ts +5 -5
  76. package/src/store/chat/helpers.ts +4 -5
  77. package/src/store/chat/initialState.ts +0 -3
  78. package/src/store/chat/slices/aiChat/actions/__tests__/fixtures.ts +4 -4
  79. package/src/store/chat/slices/aiChat/actions/__tests__/generateAIChatV2.test.ts +2 -2
  80. package/src/store/chat/slices/aiChat/actions/__tests__/rag.test.ts +6 -6
  81. package/src/store/chat/slices/aiChat/actions/generateAIChat.ts +6 -6
  82. package/src/store/chat/slices/aiChat/actions/generateAIChatV2.ts +4 -4
  83. package/src/store/chat/slices/aiChat/actions/generateAIGroupChat.ts +10 -6
  84. package/src/store/chat/slices/aiChat/actions/memory.ts +2 -2
  85. package/src/store/chat/slices/builtinTool/actions/__tests__/dalle.test.ts +3 -3
  86. package/src/store/chat/slices/builtinTool/actions/__tests__/search.test.ts +3 -3
  87. package/src/store/chat/slices/message/action.test.ts +13 -8
  88. package/src/store/chat/slices/message/action.ts +4 -4
  89. package/src/store/chat/slices/message/initialState.ts +2 -2
  90. package/src/store/chat/slices/message/reducer.test.ts +6 -6
  91. package/src/store/chat/slices/message/reducer.ts +7 -4
  92. package/src/store/chat/slices/message/selectors.test.ts +9 -9
  93. package/src/store/chat/slices/message/selectors.ts +9 -9
  94. package/src/store/chat/slices/message/supervisor.ts +2 -2
  95. package/src/store/chat/slices/plugin/action.test.ts +16 -13
  96. package/src/store/chat/slices/plugin/action.ts +5 -4
  97. package/src/store/chat/slices/portal/selectors.test.ts +8 -8
  98. package/src/store/chat/slices/thread/action.test.ts +2 -2
  99. package/src/store/chat/slices/thread/action.ts +9 -5
  100. package/src/store/chat/slices/thread/selectors/index.ts +10 -11
  101. package/src/store/chat/slices/thread/selectors/util.ts +2 -4
  102. package/src/store/chat/slices/topic/action.test.ts +6 -6
  103. package/src/store/chat/slices/topic/action.ts +2 -2
  104. package/src/store/chat/store.ts +0 -3
  105. package/src/store/chat/slices/share/action.test.ts +0 -22
  106. package/src/store/chat/slices/share/action.ts +0 -18
  107. 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, ErrorType , ChatMessage, ChatMessageError } from '@lobechat/types';
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: ChatMessage }>(({ 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: ChatMessage }>(({ data }) => (
129
+ export default memo<{ data: UIChatMessage }>(({ data }) => (
130
130
  <Suspense
131
131
  fallback={
132
132
  <ErrorActionContainer>
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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: ChatMessage;
20
+ data: UIChatMessage;
21
21
  id: string;
22
22
  index: number;
23
23
  }
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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: ChatMessage = {
27
+ const mockData: UIChatMessage = {
28
28
  content: 'test-content',
29
29
  createdAt: 0,
30
30
  id: 'abc',
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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
- ChatMessage & {
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 { ChatMessage } from '@lobechat/types';
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 ChatMessage {
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 { ChatMessage } from '@lobechat/types';
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 ChatMessage {
50
+ interface AssistantMessageProps extends UIChatMessage {
51
51
  disableEditing?: boolean;
52
52
  index: number;
53
53
  showTitle?: boolean;
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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
- ChatMessage & {
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<ChatMessage>(() => {
25
+ export const DefaultBelowMessage = memo<UIChatMessage>(() => {
26
26
  return null;
27
27
  });
@@ -1,6 +1,6 @@
1
1
  'use client';
2
2
 
3
- import { ChatMessage } from '@lobechat/types';
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 ChatMessage {
57
+ interface SupervisorMessageProps extends UIChatMessage {
58
58
  disableEditing?: boolean;
59
59
  index: number;
60
60
  }
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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: ChatMessage;
20
+ data: UIChatMessage;
21
21
  id: string;
22
22
  index: number;
23
23
  }
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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
- ChatMessage & {
10
+ UIChatMessage & {
11
11
  editableContent: ReactNode;
12
12
  }
13
13
  >(({ id, editableContent, imageList, videoList, fileList }) => {
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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 ChatMessage {
31
+ interface UserMessageProps extends UIChatMessage {
32
32
  disableEditing?: boolean;
33
33
  index: number;
34
34
  }
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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: ChatMessage;
18
+ message: UIChatMessage;
19
19
  }
20
20
 
21
21
  const SharePdf = memo<SharePdfProps>(({ message }) => {
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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: ChatMessage;
12
+ message: UIChatMessage;
13
13
  }
14
14
 
15
15
  export const generateMarkdown = ({ message }: MarkdownParams) => {
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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: ChatMessage;
23
+ message: UIChatMessage;
24
24
  previewId?: string;
25
25
  title?: string;
26
26
  }
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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: ChatMessage; mobile?: boolean; uniqueId?: string }>(
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 { ChatMessage } from '@lobechat/types';
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: ChatMessage;
20
+ item: UIChatMessage;
21
21
  }
22
22
 
23
23
  const ShareText = memo<ShareTextProps>(({ item }) => {
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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 ChatMessage[];
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 ChatMessage[];
69
+ ] as UIChatMessage[];
70
70
 
71
71
  const result = generateMarkdown({
72
72
  ...defaultParams,
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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: ChatMessage[];
20
+ messages: UIChatMessage[];
21
21
  }
22
22
 
23
23
  export const generateMarkdown = ({ messages }: MarkdownParams) =>
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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: ChatMessage;
21
+ message: UIChatMessage;
22
22
  onCancel: () => void;
23
23
  open: boolean;
24
24
  }
@@ -1,13 +1,13 @@
1
- import { ChatMessage } from '@lobechat/types';
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<ChatMessage & { editableContent: ReactNode }>;
9
- export type RenderBelowMessage = FC<ChatMessage>;
10
- export type RenderMessageExtra = FC<ChatMessage>;
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 } & ChatMessage & ListItemProps>;
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 { ChatMessage } from '@lobechat/types';
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 ChatMessage[];
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 ChatMessage[];
112
+ ] as UIChatMessage[];
113
113
 
114
114
  const result = generateMessages({
115
115
  messages: messagesWithSpaces,
@@ -1,11 +1,11 @@
1
- import { ChatMessage } from '@lobechat/types';
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: ChatMessage[];
8
+ messages: UIChatMessage[];
9
9
  systemRole: string;
10
10
  }
11
11
  export const generateMessages = ({
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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?: ChatMessage }) => {
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 { ChatMessage } from '@lobechat/types';
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 ChatMessage[];
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 ChatMessage[];
169
+ ] as UIChatMessage[];
170
170
 
171
171
  const result = generateMarkdown({
172
172
  ...defaultParams,
@@ -1,4 +1,4 @@
1
- import { ChatMessage } from '@lobechat/types';
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: ChatMessage[];
56
+ messages: UIChatMessage[];
57
57
  systemRole: string;
58
58
  title: string;
59
59
  }
@@ -1,4 +1,4 @@
1
- import { ChatMessage, CreateMessageParams, UpdateMessageRAGParams } from '@lobechat/types';
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 ChatMessage,
156
+ } as UIChatMessage,
157
157
  ]);
158
158
  vi.mocked(MessageModel).mockImplementation(
159
159
  () =>
@@ -1,4 +1,4 @@
1
- import { BatchTaskResult, ChatMessage, UpdateMessageRAGParamsSchema } from '@lobechat/types';
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 = ChatMessage[];
11
+ type ChatMessageList = UIChatMessage[];
12
12
 
13
13
  const messageProcedure = authedProcedure.use(serverDatabase).use(async (opts) => {
14
14
  const { ctx } = opts;