@lobehub/ui 1.26.1 → 1.26.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 (138) hide show
  1. package/es/ActionIcon/index.d.ts +1 -1
  2. package/es/ActionIcon/index.js +30 -18
  3. package/es/Avatar/index.js +11 -11
  4. package/es/Chat/store/initialState.d.ts +3 -3
  5. package/es/Chat/store/initialState.js +4 -4
  6. package/es/Chat/store/messageReducer.js +71 -49
  7. package/es/Chat/store/selectors.d.ts +3 -3
  8. package/es/Chat/store/selectors.js +3 -3
  9. package/es/Chat/store/store.d.ts +1 -1
  10. package/es/Chat/store/store.js +110 -110
  11. package/es/Chat/types.d.ts +1 -1
  12. package/es/Chat/utils/fetch.d.ts +1 -1
  13. package/es/Chat/utils/fetch.js +4 -4
  14. package/es/ChatInputArea/index.js +2 -1
  15. package/es/ChatInputArea/style.d.ts +3 -3
  16. package/es/ChatInputArea/style.js +5 -5
  17. package/es/ChatItem/index.js +9 -9
  18. package/es/ChatItem/style.d.ts +3 -3
  19. package/es/ChatItem/style.js +7 -7
  20. package/es/ChatList/ActionsBar.d.ts +1 -1
  21. package/es/ChatList/ActionsBar.js +12 -11
  22. package/es/ChatList/index.d.ts +1 -1
  23. package/es/ChatList/index.js +1 -1
  24. package/es/ColorScales/ScaleRow.js +20 -14
  25. package/es/ColorScales/index.js +6 -4
  26. package/es/ColorScales/style.d.ts +2 -2
  27. package/es/ColorScales/style.js +7 -7
  28. package/es/ContextMenu/MenuItem/index.js +14 -14
  29. package/es/ContextMenu/MenuItem/style.d.ts +2 -2
  30. package/es/ContextMenu/MenuItem/style.js +5 -5
  31. package/es/ContextMenu/index.js +42 -42
  32. package/es/ContextMenu/style.d.ts +1 -1
  33. package/es/ContextMenu/style.js +2 -2
  34. package/es/Conversation/App.js +2 -2
  35. package/es/Conversation/ChatList/MessageItem/Content.js +15 -15
  36. package/es/Conversation/ChatList/MessageItem/Toolbar.js +3 -3
  37. package/es/Conversation/ChatList/MessageItem/index.js +14 -14
  38. package/es/Conversation/ChatList/index.js +5 -5
  39. package/es/Conversation/InputArea/ActionBar.d.ts +2 -2
  40. package/es/Conversation/InputArea/ActionBar.js +2 -2
  41. package/es/Conversation/InputArea/index.d.ts +2 -2
  42. package/es/Conversation/InputArea/index.js +10 -12
  43. package/es/Conversation/StoreUpdater.js +1 -1
  44. package/es/Conversation/index.js +2 -2
  45. package/es/CopyButton/index.d.ts +4 -2
  46. package/es/CopyButton/index.js +4 -3
  47. package/es/DraggablePanel/index.d.ts +2 -2
  48. package/es/DraggablePanel/index.js +50 -42
  49. package/es/DraggablePanel/style.d.ts +9 -9
  50. package/es/DraggablePanel/style.js +17 -17
  51. package/es/DraggablePanel/utils.js +12 -4
  52. package/es/EditableMessage/index.js +4 -4
  53. package/es/EditableMessageList/index.js +20 -19
  54. package/es/EditableText/index.js +1 -1
  55. package/es/Features/Item.js +5 -5
  56. package/es/Features/Item.style.d.ts +2 -2
  57. package/es/Features/Item.style.js +4 -4
  58. package/es/Features/index.js +3 -3
  59. package/es/Features/style.js +2 -2
  60. package/es/FontLoader/index.d.ts +6 -0
  61. package/es/FontLoader/index.js +16 -0
  62. package/es/Footer/index.js +2 -2
  63. package/es/GradientButton/style.d.ts +1 -1
  64. package/es/GradientButton/style.js +2 -2
  65. package/es/Header/index.js +2 -2
  66. package/es/Header/style.d.ts +1 -1
  67. package/es/Header/style.js +2 -2
  68. package/es/Hero/style.d.ts +3 -3
  69. package/es/Hero/style.js +14 -13
  70. package/es/Highlighter/SyntaxHighlighter/Prism.js +7 -7
  71. package/es/Highlighter/SyntaxHighlighter/index.js +1 -1
  72. package/es/Highlighter/SyntaxHighlighter/style.d.ts +2 -2
  73. package/es/Highlighter/SyntaxHighlighter/style.js +2 -2
  74. package/es/Highlighter/index.d.ts +1 -2
  75. package/es/Highlighter/index.js +4 -3
  76. package/es/Highlighter/style.d.ts +1 -1
  77. package/es/Highlighter/style.js +2 -2
  78. package/es/Highlighter/theme.js +22 -22
  79. package/es/Icon/index.js +24 -16
  80. package/es/Input/index.js +4 -4
  81. package/es/Layout/index.js +1 -1
  82. package/es/Layout/style.d.ts +5 -5
  83. package/es/Layout/style.js +7 -7
  84. package/es/List/ListItem/index.d.ts +1 -1
  85. package/es/List/ListItem/index.js +21 -42
  86. package/es/List/ListItem/style.d.ts +9 -0
  87. package/es/List/ListItem/style.js +21 -0
  88. package/es/List/index.d.ts +1 -1
  89. package/es/Logo/index.d.ts +2 -2
  90. package/es/Logo/index.js +48 -38
  91. package/es/Logo/style.d.ts +1 -1
  92. package/es/Logo/style.js +2 -2
  93. package/es/Markdown/CodeBlock.d.ts +1 -1
  94. package/es/Markdown/CodeBlock.js +7 -7
  95. package/es/Markdown/index.js +3 -3
  96. package/es/Markdown/style.d.ts +1 -1
  97. package/es/Markdown/style.js +2 -2
  98. package/es/MessageInput/index.d.ts +1 -1
  99. package/es/MessageInput/index.js +5 -5
  100. package/es/MessageModal/index.js +8 -6
  101. package/es/MessageModal/style.d.ts +1 -1
  102. package/es/MessageModal/style.js +2 -2
  103. package/es/SearchBar/index.d.ts +1 -1
  104. package/es/SearchBar/index.js +13 -11
  105. package/es/SearchBar/style.d.ts +2 -2
  106. package/es/SearchBar/style.js +3 -3
  107. package/es/Snippet/index.js +5 -3
  108. package/es/Spotlight/index.js +13 -13
  109. package/es/Spotlight/style.js +1 -1
  110. package/es/StroyBook/index.d.ts +1 -2
  111. package/es/StroyBook/index.js +3 -3
  112. package/es/StroyBook/style.d.ts +1 -1
  113. package/es/StroyBook/style.js +2 -2
  114. package/es/Swatches/index.d.ts +1 -1
  115. package/es/Swatches/index.js +9 -9
  116. package/es/ThemeProvider/index.d.ts +2 -2
  117. package/es/ThemeProvider/index.js +3 -4
  118. package/es/ThemeSwitch/index.js +8 -8
  119. package/es/Toc/TocMobile.d.ts +4 -4
  120. package/es/Toc/TocMobile.js +15 -15
  121. package/es/Toc/style.d.ts +2 -2
  122. package/es/Toc/style.js +3 -3
  123. package/es/TokenTag/style.js +12 -7
  124. package/es/components/ControlInput.d.ts +1 -1
  125. package/es/components/ControlInput.js +7 -6
  126. package/es/hooks/useHighlight.js +14 -14
  127. package/es/index.d.ts +1 -0
  128. package/es/index.js +1 -0
  129. package/es/styles/algorithms/generateColorPalette.js +10 -10
  130. package/es/styles/algorithms/generateCustomStylish.js +5 -5
  131. package/es/styles/algorithms/generateCustomToken.js +42 -17
  132. package/es/styles/algorithms/generateTheme.js +4 -4
  133. package/es/styles/colors.js +65 -65
  134. package/es/styles/theme/base.js +2 -2
  135. package/es/styles/theme/dark.js +16 -16
  136. package/es/styles/theme/light.js +16 -16
  137. package/es/types/llm.d.ts +1 -1
  138. package/package.json +2 -2
@@ -1,6 +1,6 @@
1
1
  /// <reference types="react" />
2
2
  import { LucideIcon } from 'lucide-react';
3
- import { TooltipProps } from "../index";
3
+ import { type TooltipProps } from "../Tooltip";
4
4
  import { DivProps } from "../types";
5
5
  export declare type ActionIconSize = 'large' | 'normal' | 'small' | 'site' | {
6
6
  blockSize?: number;
@@ -5,7 +5,9 @@ function ownKeys(object, enumerableOnly) { var keys = Object.keys(object); if (O
5
5
  function _objectSpread(target) { for (var i = 1; i < arguments.length; i++) { var source = null != arguments[i] ? arguments[i] : {}; i % 2 ? ownKeys(Object(source), !0).forEach(function (key) { _defineProperty(target, key, source[key]); }) : Object.getOwnPropertyDescriptors ? Object.defineProperties(target, Object.getOwnPropertyDescriptors(source)) : ownKeys(Object(source)).forEach(function (key) { Object.defineProperty(target, key, Object.getOwnPropertyDescriptor(source, key)); }); } return target; }
6
6
  import { Loader2 } from 'lucide-react';
7
7
  import { memo, useMemo } from 'react';
8
- import { Icon, Spotlight, Tooltip } from "./..";
8
+ import Icon from "../Icon";
9
+ import Spotlight from "../Spotlight";
10
+ import Tooltip from "../Tooltip";
9
11
  import { useStyles } from "./style";
10
12
  import { jsx as _jsx } from "react/jsx-runtime";
11
13
  import { Fragment as _Fragment } from "react/jsx-runtime";
@@ -15,25 +17,35 @@ var calcSize = function calcSize(size) {
15
17
  var borderRadius;
16
18
  switch (size) {
17
19
  case 'large':
18
- blockSize = 44;
19
- borderRadius = 8;
20
- break;
20
+ {
21
+ blockSize = 44;
22
+ borderRadius = 8;
23
+ break;
24
+ }
21
25
  case 'normal':
22
- blockSize = 36;
23
- borderRadius = 5;
24
- break;
26
+ {
27
+ blockSize = 36;
28
+ borderRadius = 5;
29
+ break;
30
+ }
25
31
  case 'small':
26
- blockSize = 24;
27
- borderRadius = 5;
28
- break;
32
+ {
33
+ blockSize = 24;
34
+ borderRadius = 5;
35
+ break;
36
+ }
29
37
  case 'site':
30
- blockSize = 34;
31
- borderRadius = 5;
32
- break;
38
+ {
39
+ blockSize = 34;
40
+ borderRadius = 5;
41
+ break;
42
+ }
33
43
  default:
34
- blockSize = (size === null || size === void 0 ? void 0 : size.blockSize) || 36;
35
- borderRadius = (size === null || size === void 0 ? void 0 : size.borderRadius) || 5;
36
- break;
44
+ {
45
+ blockSize = (size === null || size === void 0 ? void 0 : size.blockSize) || 36;
46
+ borderRadius = (size === null || size === void 0 ? void 0 : size.borderRadius) || 5;
47
+ break;
48
+ }
37
49
  }
38
50
  return {
39
51
  blockSize: blockSize,
@@ -83,9 +95,9 @@ var ActionIcon = /*#__PURE__*/memo(function (_ref) {
83
95
  className: cx(styles.block, className),
84
96
  onClick: loading ? undefined : onClick,
85
97
  style: _objectSpread({
86
- width: blockSize,
98
+ borderRadius: borderRadius,
87
99
  height: blockSize,
88
- borderRadius: borderRadius
100
+ width: blockSize
89
101
  }, style)
90
102
  }, props), {}, {
91
103
  children: [spotlight && /*#__PURE__*/_jsx(Spotlight, {}), loading ? spin : content]
@@ -17,29 +17,29 @@ var Avatar = /*#__PURE__*/memo(function (_ref) {
17
17
  shape = _ref$shape === void 0 ? 'circle' : _ref$shape,
18
18
  background = _ref.background,
19
19
  props = _objectWithoutProperties(_ref, _excluded);
20
- var isImage = Boolean(avatar && ['/', 'http', 'data:'].some(function (i) {
21
- return avatar.startsWith(i);
20
+ var isImage = Boolean(avatar && ['/', 'http', 'data:'].some(function (index) {
21
+ return avatar.startsWith(index);
22
22
  }));
23
23
  var isEmoji = Boolean(avatar && !isImage && /\uD83C[\uDF00-\uDFFF]|\uD83D[\uDC00-\uDE4F]/g.test(avatar));
24
24
  var _useStyles = useStyles({
25
25
  background: background,
26
- size: size,
27
- isEmoji: isEmoji
26
+ isEmoji: isEmoji,
27
+ size: size
28
28
  }),
29
29
  styles = _useStyles.styles,
30
30
  cx = _useStyles.cx;
31
31
  var text = isImage ? title : avatar;
32
- return !isImage ? /*#__PURE__*/_jsx(AntAvatar, _objectSpread(_objectSpread({
32
+ return isImage ? /*#__PURE__*/_jsx(AntAvatar, _objectSpread({
33
+ className: cx(styles.avatar, className),
34
+ shape: shape,
35
+ size: size,
36
+ src: avatar
37
+ }, props)) : /*#__PURE__*/_jsx(AntAvatar, _objectSpread(_objectSpread({
33
38
  className: cx(styles.avatar, className),
34
39
  shape: shape,
35
40
  size: size
36
41
  }, props), {}, {
37
42
  children: isEmoji ? text : text === null || text === void 0 ? void 0 : text.toUpperCase().slice(0, 2)
38
- })) : /*#__PURE__*/_jsx(AntAvatar, _objectSpread({
39
- className: cx(styles.avatar, className),
40
- shape: shape,
41
- size: size,
42
- src: avatar
43
- }, props));
43
+ }));
44
44
  });
45
45
  export default Avatar;
@@ -1,4 +1,4 @@
1
- import { ChatMessage, InternalChatContext, OpenAIRequestParams } from '../types';
1
+ import { ChatMessage, InternalChatContext, OpenAIRequestParameters } from '../types';
2
2
  export interface ChatState extends InternalChatContext {
3
3
  /**
4
4
  * @title 改变系统角色状态
@@ -8,7 +8,7 @@ export interface ChatState extends InternalChatContext {
8
8
  /**
9
9
  * 编辑中的消息 id
10
10
  */
11
- editingMessageId?: number | null;
11
+ editingMessageId?: number | undefined;
12
12
  /**
13
13
  * @title 加载状态
14
14
  * @type {boolean}
@@ -23,6 +23,6 @@ export interface ChatState extends InternalChatContext {
23
23
  onMessagesChange?: (messages: ChatMessage[]) => void;
24
24
  onResponseFinished?: (session: any) => void;
25
25
  onResponseStart?: (messages: ChatMessage[]) => Promise<void>;
26
- request?: (params: OpenAIRequestParams) => Promise<Response>;
26
+ request?: (parameters: OpenAIRequestParameters) => Promise<Response>;
27
27
  }
28
28
  export declare const initialState: ChatState;
@@ -1,9 +1,9 @@
1
1
  export var initialState = {
2
- message: '',
3
- messages: [],
4
- loading: false,
5
2
  changingSystemRole: false,
6
- editingMessageId: null,
7
3
  createAt: -1,
4
+ editingMessageId: undefined,
5
+ loading: false,
6
+ message: '',
7
+ messages: [],
8
8
  updateAt: -1
9
9
  };
@@ -3,65 +3,87 @@ import { produce } from 'immer';
3
3
  export var messagesReducer = function messagesReducer(state, payload) {
4
4
  switch (payload.type) {
5
5
  case 'addMessage':
6
- return [].concat(_toConsumableArray(state), [payload.message]);
6
+ {
7
+ return [].concat(_toConsumableArray(state), [payload.message]);
8
+ }
7
9
  case 'insertMessage':
8
- return produce(state, function (draftState) {
9
- draftState.splice(payload.index, 0, payload.message);
10
- });
10
+ {
11
+ return produce(state, function (draftState) {
12
+ draftState.splice(payload.index, 0, payload.message);
13
+ });
14
+ }
11
15
  case 'deleteMessage':
12
- return state.filter(function (_, i) {
13
- return i !== payload.index;
14
- });
16
+ {
17
+ return state.filter(function (_, index) {
18
+ return index !== payload.index;
19
+ });
20
+ }
15
21
  case 'resetMessages':
16
- return [];
22
+ {
23
+ return [];
24
+ }
17
25
  case 'updateMessage':
18
- return produce(state, function (draftState) {
19
- var index = payload.index,
20
- message = payload.message;
21
- draftState[index].content = message;
22
- });
26
+ {
27
+ return produce(state, function (draftState) {
28
+ var index = payload.index,
29
+ message = payload.message;
30
+ draftState[index].content = message;
31
+ });
32
+ }
23
33
  case 'updateMessageRole':
24
- return produce(state, function (draftState) {
25
- var index = payload.index,
26
- role = payload.role;
27
- draftState[index].role = role;
28
- });
34
+ {
35
+ return produce(state, function (draftState) {
36
+ var index = payload.index,
37
+ role = payload.role;
38
+ draftState[index].role = role;
39
+ });
40
+ }
29
41
  case 'addUserMessage':
30
- return produce(state, function (draftState) {
31
- draftState.push({
32
- role: 'user',
33
- content: payload.message
42
+ {
43
+ return produce(state, function (draftState) {
44
+ draftState.push({
45
+ content: payload.message,
46
+ role: 'user'
47
+ });
34
48
  });
35
- });
49
+ }
36
50
  case 'updateLatestBotMessage':
37
- return produce(state, function () {
38
- var responseStream = payload.responseStream;
39
- var newMessage = {
40
- role: 'assistant',
41
- content: responseStream.join('')
42
- };
43
- return [].concat(_toConsumableArray(state.slice(0, -1)), [newMessage]);
44
- });
51
+ {
52
+ return produce(state, function () {
53
+ var responseStream = payload.responseStream;
54
+ var newMessage = {
55
+ content: responseStream.join(''),
56
+ role: 'assistant'
57
+ };
58
+ return [].concat(_toConsumableArray(state.slice(0, -1)), [newMessage]);
59
+ });
60
+ }
45
61
  case 'setErrorMessage':
46
- return produce(state, function (draftState) {
47
- var index = payload.index,
48
- error = payload.error;
49
- draftState[index].error = error;
50
- });
62
+ {
63
+ return produce(state, function (draftState) {
64
+ var index = payload.index,
65
+ error = payload.error;
66
+ draftState[index].error = error;
67
+ });
68
+ }
51
69
  case 'updateMessageChoice':
52
- return produce(state, function (draftState) {
53
- var index = payload.index,
54
- message = payload.message;
55
- var botMessage = draftState[index];
56
- var prevMsg = botMessage.content;
57
- botMessage.content = message;
58
- if (botMessage.choices) {
59
- botMessage.choices.push(prevMsg);
60
- } else {
61
- botMessage.choices = [prevMsg];
62
- }
63
- });
70
+ {
71
+ return produce(state, function (draftState) {
72
+ var index = payload.index,
73
+ message = payload.message;
74
+ var botMessage = draftState[index];
75
+ var previousMessage = botMessage.content;
76
+ botMessage.content = message;
77
+ if (botMessage.choices) {
78
+ botMessage.choices.push(previousMessage);
79
+ } else {
80
+ botMessage.choices = [previousMessage];
81
+ }
82
+ });
83
+ }
64
84
  default:
65
- throw Error('暂未实现的 type,请检查 reducer');
85
+ {
86
+ throw new Error('暂未实现的 type,请检查 reducer');
87
+ }
66
88
  }
67
89
  };
@@ -1,9 +1,9 @@
1
1
  import type { ChatStore } from './store';
2
2
  export declare const chatSelectors: {
3
- totalTokenCount: (s: ChatStore) => number;
4
3
  agentTokenCount: (s: ChatStore) => number;
4
+ disableInput: (s: ChatStore) => boolean;
5
5
  messagesTokenCount: (s: ChatStore) => number;
6
- totalTokens: (s: ChatStore) => number[];
7
6
  messagesTokens: (s: ChatStore) => number[];
8
- disableInput: (s: ChatStore) => boolean;
7
+ totalTokenCount: (s: ChatStore) => number;
8
+ totalTokens: (s: ChatStore) => number[];
9
9
  };
@@ -35,10 +35,10 @@ var messagesTokenCount = function messagesTokenCount(s) {
35
35
  return messagesTokens(s).length;
36
36
  };
37
37
  export var chatSelectors = {
38
- totalTokenCount: totalTokenCount,
39
38
  agentTokenCount: agentTokenCount,
39
+ disableInput: disableInputSel,
40
40
  messagesTokenCount: messagesTokenCount,
41
- totalTokens: totalTokens,
42
41
  messagesTokens: messagesTokens,
43
- disableInput: disableInputSel
42
+ totalTokenCount: totalTokenCount,
43
+ totalTokens: totalTokens
44
44
  };
@@ -16,7 +16,7 @@ interface ChatAction {
16
16
  * @param index - 消息索引或空
17
17
  * @returns void
18
18
  */
19
- handleMessageEditing: (index?: number | null) => void;
19
+ handleMessageEditing: (index?: number | undefined) => void;
20
20
  /**
21
21
  * @title 重发消息
22
22
  * @param index - 消息索引
@@ -20,16 +20,11 @@ export var createStore = function createStore(set, get) {
20
20
  set({
21
21
  messages: messages
22
22
  }, false, {
23
- type: "dispatchMessage/".concat(type),
24
- payload: res
23
+ payload: res,
24
+ type: "dispatchMessage/".concat(type)
25
25
  });
26
26
  (_get$onMessagesChange = (_get = get()).onMessagesChange) === null || _get$onMessagesChange === void 0 ? void 0 : _get$onMessagesChange.call(_get, messages);
27
27
  },
28
- handleMessageEditing: function handleMessageEditing(index) {
29
- set({
30
- editingMessageId: index
31
- });
32
- },
33
28
  generateMessage: function () {
34
29
  var _generateMessage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee(message, messages, options) {
35
30
  var _get2, onResponseStart, request, onResponseFinished, fetcher;
@@ -74,167 +69,172 @@ export var createStore = function createStore(set, get) {
74
69
  }
75
70
  return generateMessage;
76
71
  }(),
77
- sendMessage: function () {
78
- var _sendMessage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2() {
79
- var _get3, message, dispatchMessage, generateMessage, messages, currentResponse;
80
- return _regeneratorRuntime.wrap(function _callee2$(_context2) {
81
- while (1) switch (_context2.prev = _context2.next) {
82
- case 0:
83
- _get3 = get(), message = _get3.message, dispatchMessage = _get3.dispatchMessage, generateMessage = _get3.generateMessage, messages = _get3.messages;
84
- if (message) {
85
- _context2.next = 3;
86
- break;
87
- }
88
- return _context2.abrupt("return");
89
- case 3:
90
- set({
91
- message: ''
92
- });
93
- dispatchMessage({
94
- type: 'addUserMessage',
95
- message: message
96
- });
97
-
98
- // 添加一个空的信息用于放置 ai 响应
99
- dispatchMessage({
100
- type: 'addMessage',
101
- message: {
102
- role: 'assistant',
103
- content: LOADING_FLAT
104
- }
105
- });
106
- currentResponse = []; // 生成 messages
107
- _context2.next = 9;
108
- return generateMessage(message, messages, {
109
- onMessageHandle: function onMessageHandle(text) {
110
- currentResponse = [].concat(_toConsumableArray(currentResponse), [text]);
111
- dispatchMessage({
112
- type: 'updateLatestBotMessage',
113
- responseStream: currentResponse
114
- });
115
-
116
- // 滚动到最后一条消息
117
- var item = document.getElementById('for-loading');
118
- if (!item) return;
119
- item.scrollIntoView({
120
- behavior: 'smooth'
121
- });
122
- },
123
- onErrorHandle: function onErrorHandle(error) {
124
- dispatchMessage({
125
- type: 'setErrorMessage',
126
- error: error,
127
- index: get().messages.length - 1
128
- });
129
- }
130
- });
131
- case 9:
132
- case "end":
133
- return _context2.stop();
134
- }
135
- }, _callee2);
136
- }));
137
- function sendMessage() {
138
- return _sendMessage.apply(this, arguments);
139
- }
140
- return sendMessage;
141
- }(),
72
+ handleMessageEditing: function handleMessageEditing(index) {
73
+ set({
74
+ editingMessageId: index
75
+ });
76
+ },
142
77
  resendMessage: function () {
143
- var _resendMessage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3(index) {
78
+ var _resendMessage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee2(index) {
144
79
  var _contextMessages$at;
145
- var _get4, dispatchMessage, sendMessage, generateMessage, messages, lastMessage, contextMessages, userMessage, targetMsg, botPrevMsg, currentResponse;
146
- return _regeneratorRuntime.wrap(function _callee3$(_context3) {
147
- while (1) switch (_context3.prev = _context3.next) {
80
+ var _get3, dispatchMessage, sendMessage, generateMessage, messages, lastMessage, contextMessages, userMessage, targetMessage, botPreviousMessage, currentResponse;
81
+ return _regeneratorRuntime.wrap(function _callee2$(_context2) {
82
+ while (1) switch (_context2.prev = _context2.next) {
148
83
  case 0:
149
- _get4 = get(), dispatchMessage = _get4.dispatchMessage, sendMessage = _get4.sendMessage, generateMessage = _get4.generateMessage, messages = _get4.messages;
84
+ _get3 = get(), dispatchMessage = _get3.dispatchMessage, sendMessage = _get3.sendMessage, generateMessage = _get3.generateMessage, messages = _get3.messages;
150
85
  lastMessage = messages.at(-1); // 用户通过手动删除,造成了他的问题是最后一条消息
151
86
  // 这种情况下,相当于用户重新发送消息
152
87
  if (!(messages.length === index && (lastMessage === null || lastMessage === void 0 ? void 0 : lastMessage.role) === 'user')) {
153
- _context3.next = 8;
88
+ _context2.next = 8;
154
89
  break;
155
90
  }
156
91
  dispatchMessage({
157
- type: 'deleteMessage',
158
- index: index - 1
92
+ index: index - 1,
93
+ type: 'deleteMessage'
159
94
  });
160
95
  set({
161
96
  message: lastMessage.content
162
97
  });
163
- _context3.next = 7;
98
+ _context2.next = 7;
164
99
  return sendMessage();
165
100
  case 7:
166
- return _context3.abrupt("return");
101
+ return _context2.abrupt("return");
167
102
  case 8:
168
103
  // 上下文消息就是当前消息之前的消息
169
104
  contextMessages = get().messages.slice(0, index); // 上下文消息中最后一条消息
170
105
  userMessage = (_contextMessages$at = contextMessages.at(-1)) === null || _contextMessages$at === void 0 ? void 0 : _contextMessages$at.content;
171
106
  if (userMessage) {
172
- _context3.next = 12;
107
+ _context2.next = 12;
173
108
  break;
174
109
  }
175
- return _context3.abrupt("return");
110
+ return _context2.abrupt("return");
176
111
  case 12:
177
- targetMsg = messages[index]; // 如果不是 assistant 的消息,那么需要额外插入一条消息
178
- if (targetMsg.role !== 'assistant') {
112
+ targetMessage = messages[index]; // 如果不是 assistant 的消息,那么需要额外插入一条消息
113
+ if (targetMessage.role === 'assistant') {
114
+ botPreviousMessage = targetMessage.content; // 保存之前的消息为历史消息
179
115
  dispatchMessage({
180
- type: 'insertMessage',
181
116
  index: index,
182
- message: {
183
- role: 'assistant',
184
- content: LOADING_FLAT
185
- }
117
+ message: botPreviousMessage,
118
+ type: 'updateMessageChoice'
186
119
  });
187
- } else {
188
- botPrevMsg = targetMsg.content; // 保存之前的消息为历史消息
189
120
  dispatchMessage({
190
- type: 'updateMessageChoice',
191
- message: botPrevMsg,
192
- index: index
121
+ index: index,
122
+ message: LOADING_FLAT,
123
+ type: 'updateMessage'
193
124
  });
125
+ } else {
194
126
  dispatchMessage({
195
- type: 'updateMessage',
196
- message: LOADING_FLAT,
197
- index: index
127
+ index: index,
128
+ message: {
129
+ content: LOADING_FLAT,
130
+ role: 'assistant'
131
+ },
132
+ type: 'insertMessage'
198
133
  });
199
134
  }
200
135
 
201
136
  // 重置错误信息
202
137
  dispatchMessage({
203
- type: 'setErrorMessage',
204
138
  error: undefined,
205
- index: index
139
+ index: index,
140
+ type: 'setErrorMessage'
206
141
  });
207
142
 
208
143
  // 开始更新消息
209
144
  currentResponse = [];
210
- _context3.next = 18;
145
+ _context2.next = 18;
211
146
  return generateMessage(userMessage, contextMessages, {
147
+ onErrorHandle: function onErrorHandle(error) {
148
+ dispatchMessage({
149
+ error: error,
150
+ index: index,
151
+ type: 'setErrorMessage'
152
+ });
153
+ },
212
154
  onMessageHandle: function onMessageHandle(text) {
213
155
  currentResponse = [].concat(_toConsumableArray(currentResponse), [text]);
214
156
  dispatchMessage({
215
- type: 'updateMessage',
157
+ index: index,
216
158
  message: currentResponse.join(''),
217
- index: index
159
+ type: 'updateMessage'
218
160
  });
161
+ }
162
+ });
163
+ case 18:
164
+ case "end":
165
+ return _context2.stop();
166
+ }
167
+ }, _callee2);
168
+ }));
169
+ function resendMessage(_x4) {
170
+ return _resendMessage.apply(this, arguments);
171
+ }
172
+ return resendMessage;
173
+ }(),
174
+ sendMessage: function () {
175
+ var _sendMessage = _asyncToGenerator( /*#__PURE__*/_regeneratorRuntime.mark(function _callee3() {
176
+ var _get4, message, dispatchMessage, generateMessage, messages, currentResponse;
177
+ return _regeneratorRuntime.wrap(function _callee3$(_context3) {
178
+ while (1) switch (_context3.prev = _context3.next) {
179
+ case 0:
180
+ _get4 = get(), message = _get4.message, dispatchMessage = _get4.dispatchMessage, generateMessage = _get4.generateMessage, messages = _get4.messages;
181
+ if (message) {
182
+ _context3.next = 3;
183
+ break;
184
+ }
185
+ return _context3.abrupt("return");
186
+ case 3:
187
+ set({
188
+ message: ''
189
+ });
190
+ dispatchMessage({
191
+ message: message,
192
+ type: 'addUserMessage'
193
+ });
194
+
195
+ // 添加一个空的信息用于放置 ai 响应
196
+ dispatchMessage({
197
+ message: {
198
+ content: LOADING_FLAT,
199
+ role: 'assistant'
219
200
  },
201
+ type: 'addMessage'
202
+ });
203
+ currentResponse = []; // 生成 messages
204
+ _context3.next = 9;
205
+ return generateMessage(message, messages, {
220
206
  onErrorHandle: function onErrorHandle(error) {
221
207
  dispatchMessage({
222
- type: 'setErrorMessage',
223
208
  error: error,
224
- index: index
209
+ index: get().messages.length - 1,
210
+ type: 'setErrorMessage'
211
+ });
212
+ },
213
+ onMessageHandle: function onMessageHandle(text) {
214
+ currentResponse = [].concat(_toConsumableArray(currentResponse), [text]);
215
+ dispatchMessage({
216
+ responseStream: currentResponse,
217
+ type: 'updateLatestBotMessage'
218
+ });
219
+
220
+ // 滚动到最后一条消息
221
+ var item = document.querySelector('#for-loading');
222
+ if (!item) return;
223
+ item.scrollIntoView({
224
+ behavior: 'smooth'
225
225
  });
226
226
  }
227
227
  });
228
- case 18:
228
+ case 9:
229
229
  case "end":
230
230
  return _context3.stop();
231
231
  }
232
232
  }, _callee3);
233
233
  }));
234
- function resendMessage(_x4) {
235
- return _resendMessage.apply(this, arguments);
234
+ function sendMessage() {
235
+ return _sendMessage.apply(this, arguments);
236
236
  }
237
- return resendMessage;
237
+ return sendMessage;
238
238
  }()
239
239
  });
240
240
  };
@@ -69,7 +69,7 @@ export declare type ChatContextMap = Record<string, Omit<ChatContext, 'systemRol
69
69
  /**
70
70
  * 请求数据类型
71
71
  */
72
- export interface OpenAIRequestParams {
72
+ export interface OpenAIRequestParameters {
73
73
  /**
74
74
  * 中间的聊天记录
75
75
  */
@@ -8,4 +8,4 @@ export interface FetchSSEOptions {
8
8
  * @param fetchFn
9
9
  * @param options
10
10
  */
11
- export declare const fetchSSE: (fetchFn: () => Promise<Response>, options?: FetchSSEOptions) => Promise<Response | undefined>;
11
+ export declare const fetchSSE: (fetchFunction: () => Promise<Response>, options?: FetchSSEOptions) => Promise<Response | undefined>;