@ant-design/agentic-ui 2.30.22 → 2.30.24
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/dist/Bubble/MessagesContent/MarkdownPreview.d.ts +0 -58
- package/dist/Bubble/MessagesContent/MarkdownPreview.js +79 -156
- package/dist/Hooks/useAutoScroll.js +6 -4
- package/dist/MarkdownEditor/BaseMarkdownEditor.d.ts +1 -50
- package/dist/MarkdownEditor/BaseMarkdownEditor.js +11 -55
- package/dist/MarkdownEditor/editor/Editor.js +11 -9
- package/dist/MarkdownEditor/editor/elements/Code/index.js +1 -0
- package/dist/MarkdownEditor/editor/plugins/elements.d.ts +2 -0
- package/dist/MarkdownEditor/editor/plugins/elements.js +4 -2
- package/dist/MarkdownEditor/editor/plugins/handlePaste.js +46 -35
- package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/backspace.js +133 -133
- package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/enter.js +156 -140
- package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/match.d.ts +2 -1
- package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/match.js +23 -4
- package/dist/MarkdownEditor/editor/plugins/hotKeyCommands/tab.js +40 -36
- package/dist/MarkdownEditor/editor/plugins/index.d.ts +1 -0
- package/dist/MarkdownEditor/editor/plugins/index.js +1 -0
- package/dist/MarkdownEditor/editor/plugins/useKeyboard.js +46 -44
- package/dist/MarkdownEditor/editor/plugins/withCodeTagPlugin.js +1 -13
- package/dist/MarkdownEditor/editor/plugins/withMarkdown.js +2 -1
- package/dist/MarkdownEditor/editor/plugins/withSanitizeInvalidChildren.d.ts +7 -0
- package/dist/MarkdownEditor/editor/plugins/withSanitizeInvalidChildren.js +217 -0
- package/dist/MarkdownEditor/editor/store.d.ts +3 -1
- package/dist/MarkdownEditor/editor/store.js +15 -29
- package/dist/MarkdownEditor/editor/utils/editorCommands.js +98 -17
- package/dist/MarkdownEditor/editor/utils/editorUtils.d.ts +11 -0
- package/dist/MarkdownEditor/editor/utils/editorUtils.js +43 -6
- package/dist/MarkdownEditor/editor/utils/keyboard.js +14 -12
- package/dist/MarkdownEditor/types.d.ts +36 -414
- package/dist/MarkdownEditor/types.js +1 -4
- package/dist/MarkdownInputField/MarkdownInputField.js +2 -0
- package/dist/MarkdownInputField/SendActions/index.js +7 -4
- package/dist/MarkdownInputField/SendButton/index.d.ts +6 -0
- package/dist/MarkdownInputField/SendButton/index.js +6 -0
- package/dist/MarkdownInputField/hooks/useMarkdownInputFieldHandlers.d.ts +2 -1
- package/dist/MarkdownInputField/hooks/useMarkdownInputFieldHandlers.js +6 -1
- package/dist/MarkdownRenderer/AnimationText.d.ts +1 -5
- package/dist/MarkdownRenderer/AnimationText.js +2 -8
- package/dist/MarkdownRenderer/CharacterQueue.d.ts +0 -2
- package/dist/MarkdownRenderer/CharacterQueue.js +2 -2
- package/dist/MarkdownRenderer/MarkdownRenderer.d.ts +1 -9
- package/dist/MarkdownRenderer/MarkdownRenderer.js +1 -9
- package/dist/MarkdownRenderer/StreamingCursor.d.ts +4 -0
- package/dist/MarkdownRenderer/StreamingCursor.js +20 -0
- package/dist/MarkdownRenderer/markdownReactShared.d.ts +8 -38
- package/dist/MarkdownRenderer/markdownReactShared.js +9 -45
- package/dist/MarkdownRenderer/renderers/ChartRenderer.js +9 -1
- package/dist/MarkdownRenderer/streaming/MarkdownBlockPiece.d.ts +1 -3
- package/dist/MarkdownRenderer/streaming/MarkdownBlockPiece.js +16 -28
- package/dist/MarkdownRenderer/style.js +18 -0
- package/dist/MarkdownRenderer/types.d.ts +14 -86
- package/dist/MarkdownRenderer/useStreaming.d.ts +1 -10
- package/dist/MarkdownRenderer/useStreaming.js +5 -13
- package/dist/ThoughtChainList/MarkdownEditor.d.ts +1 -35
- package/dist/ThoughtChainList/MarkdownEditor.js +5 -44
- package/dist/Workspace/RealtimeFollow/index.d.ts +3 -0
- package/dist/Workspace/RealtimeFollow/index.js +5 -3
- package/package.json +2 -2
|
@@ -4,76 +4,34 @@ import type { MarkdownEditorPlugin } from '../MarkdownEditor/plugin';
|
|
|
4
4
|
import type { MarkdownEditorProps } from '../MarkdownEditor/types';
|
|
5
5
|
import type { AttachmentFile } from '../MarkdownInputField/AttachmentButton/types';
|
|
6
6
|
import type { FileMapViewProps } from '../MarkdownInputField/FileMapView';
|
|
7
|
-
/**
|
|
8
|
-
* FileMapView 相关配置,透传给 agentic-ui-filemap 代码块渲染器,
|
|
9
|
-
* 方便在 markdownRenderConfig 中统一配置图片回显行为。
|
|
10
|
-
*/
|
|
7
|
+
/** 透传给 agentic-ui-filemap 代码块渲染器的配置 */
|
|
11
8
|
export interface FileMapConfig {
|
|
12
|
-
/**
|
|
13
|
-
* 预览文件回调,透传给 FileMapView.onPreview。
|
|
14
|
-
* 对图片:点击缩略图时触发,传入则阻止 antd Image 内置灯箱;
|
|
15
|
-
* 对视频:传入则阻止内置弹窗;对普通文件:传入则阻止默认 window.open。
|
|
16
|
-
*/
|
|
9
|
+
/** 传入则阻止内置预览(灯箱/弹窗/window.open) */
|
|
17
10
|
onPreview?: (file: AttachmentFile) => void;
|
|
18
|
-
/**
|
|
19
|
-
* 自定义每个媒体条目(图片/视频)的渲染,透传给 FileMapView.itemRender,
|
|
20
|
-
* 常用于回显场景。
|
|
21
|
-
*/
|
|
11
|
+
/** 自定义媒体条目渲染 */
|
|
22
12
|
itemRender?: FileMapViewProps['itemRender'];
|
|
23
|
-
/**
|
|
24
|
-
* 自定义文件数据规范化函数,用于将 agentic-ui-filemap 代码块中的原始 JSON 条目
|
|
25
|
-
* 转换为 AttachmentFile 对象。
|
|
26
|
-
*
|
|
27
|
-
* 适用于服务端返回的字段名与 AttachmentFile 不一致(如 fileUrl → url、
|
|
28
|
-
* fileId → uuid)或需要在数据层补充额外字段的场景。
|
|
29
|
-
*
|
|
30
|
-
* @param raw - 代码块 JSON 中的原始文件对象(未经处理)
|
|
31
|
-
* @param defaultFile - 由内置逻辑生成的默认 AttachmentFile,可在此基础上做局部覆盖
|
|
32
|
-
* @returns 转换后的 AttachmentFile;返回 null 时该条目将被过滤掉
|
|
33
|
-
*
|
|
34
|
-
* @example
|
|
35
|
-
* ```tsx
|
|
36
|
-
* fileMapConfig={{
|
|
37
|
-
* normalizeFile: (raw, defaultFile) => ({
|
|
38
|
-
* ...defaultFile,
|
|
39
|
-
* url: raw.fileUrl as string,
|
|
40
|
-
* uuid: raw.fileId as string,
|
|
41
|
-
* }),
|
|
42
|
-
* }}
|
|
43
|
-
* ```
|
|
44
|
-
*/
|
|
13
|
+
/** 将原始 JSON 条目转为 AttachmentFile,返回 null 过滤该条目 */
|
|
45
14
|
normalizeFile?: (raw: Record<string, unknown>, defaultFile: AttachmentFile) => AttachmentFile | null;
|
|
46
15
|
}
|
|
47
16
|
export interface MarkdownRendererEleProps {
|
|
48
|
-
/** HTML tag name, e.g. 'p', 'h1', 'blockquote', 'pre' */
|
|
49
17
|
tagName: string;
|
|
50
|
-
/** The original hast node */
|
|
51
18
|
node?: any;
|
|
52
|
-
/** Rendered children */
|
|
53
19
|
children?: React.ReactNode;
|
|
54
20
|
[key: string]: any;
|
|
55
21
|
}
|
|
56
22
|
export interface CharacterQueueOptions {
|
|
57
|
-
/**
|
|
23
|
+
/** 默认 3 */
|
|
58
24
|
charsPerFrame?: number;
|
|
59
|
-
/**
|
|
60
|
-
* 是否启用 CharacterQueue 逐字输出(RAF 驱动)。
|
|
61
|
-
* MarkdownRenderer 流式默认合并为 `false`,避免每帧全量重解析导致整页闪动;需打字机时再设为 `true`。
|
|
62
|
-
*/
|
|
25
|
+
/** 流式时默认合并为 false,需打字机时设 true */
|
|
63
26
|
animate?: boolean;
|
|
64
|
-
/**
|
|
65
|
-
* 仅对末尾 N 个字符做动画,前面内容立即展示。
|
|
66
|
-
* 设为 50 时,每次 push 只对最后 50 字逐字输出,避免整段逐字动画。
|
|
67
|
-
* 默认 undefined 表示整段动画(原有行为)。
|
|
68
|
-
*/
|
|
27
|
+
/** 仅对末尾 N 字做动画,前面内容立即展示 */
|
|
69
28
|
animateTailChars?: number;
|
|
70
|
-
/**
|
|
29
|
+
/** 速度因子,默认 1.0 */
|
|
71
30
|
speed?: number;
|
|
72
|
-
/** 内容完成后立即 flush 全部剩余 */
|
|
73
31
|
flushOnComplete?: boolean;
|
|
74
|
-
/**
|
|
32
|
+
/** 默认 100ms */
|
|
75
33
|
backgroundInterval?: number;
|
|
76
|
-
/**
|
|
34
|
+
/** 默认 10 */
|
|
77
35
|
backgroundBatchMultiplier?: number;
|
|
78
36
|
}
|
|
79
37
|
export type { RendererPlugin } from '../MarkdownEditor/plugin';
|
|
@@ -84,65 +42,35 @@ export interface RendererBlockProps {
|
|
|
84
42
|
}
|
|
85
43
|
export type RenderMode = 'slate' | 'markdown';
|
|
86
44
|
export interface MarkdownRendererProps {
|
|
87
|
-
/** 完整的 markdown 内容(流式场景下持续增长) */
|
|
88
45
|
content: string;
|
|
89
|
-
/** 是否处于流式状态 */
|
|
90
46
|
streaming?: boolean;
|
|
91
|
-
/** 流式完成 */
|
|
92
47
|
isFinished?: boolean;
|
|
93
|
-
/** 字符队列配置 */
|
|
94
48
|
queueOptions?: CharacterQueueOptions;
|
|
95
|
-
/** 插件配置(用于自定义块渲染) */
|
|
96
49
|
plugins?: MarkdownEditorPlugin[];
|
|
97
|
-
/** markdownToHtml 的额外 remark/rehype 插件 */
|
|
98
50
|
remarkPlugins?: MarkdownRemarkPlugin[];
|
|
99
|
-
/** HTML 渲染配置 */
|
|
100
51
|
htmlConfig?: MarkdownToHtmlConfig;
|
|
101
|
-
/** 类名 */
|
|
102
52
|
className?: string;
|
|
103
|
-
/** 样式 */
|
|
104
53
|
style?: React.CSSProperties;
|
|
105
|
-
/** 类名前缀 */
|
|
106
54
|
prefixCls?: string;
|
|
107
|
-
/** 代码块配置,与 MarkdownEditor `codeProps` 对齐(含 `render` 覆盖) */
|
|
108
55
|
codeProps?: MarkdownEditorProps['codeProps'];
|
|
109
|
-
/** 脚注配置,与 MarkdownEditor `fncProps` 对齐 */
|
|
110
56
|
fncProps?: MarkdownEditorProps['fncProps'];
|
|
111
|
-
/** 链接配置 */
|
|
112
57
|
linkConfig?: {
|
|
113
|
-
/**
|
|
58
|
+
/** 默认 true */
|
|
114
59
|
openInNewTab?: boolean;
|
|
115
|
-
/**
|
|
60
|
+
/** 返回 false 阻止跳转 */
|
|
116
61
|
onClick?: (url?: string) => boolean | void;
|
|
117
62
|
};
|
|
118
|
-
/**
|
|
119
|
-
* 流式时是否为生长中的末段启用淡入(AnimationText)。
|
|
120
|
-
* 默认 false,避免重解析时整页闪动;需要段落入场效果时再设为 true。
|
|
121
|
-
*/
|
|
63
|
+
/** 末段淡入动画,默认开启;传 false 关闭 */
|
|
122
64
|
streamingParagraphAnimation?: boolean;
|
|
123
|
-
/** Apaasify / Schema 自定义渲染 */
|
|
124
65
|
apaasify?: {
|
|
125
66
|
enable?: boolean;
|
|
126
|
-
/** 自定义渲染函数,接收解析后的 JSON value,返回 React 节点 */
|
|
127
67
|
render?: (value: any) => React.ReactNode;
|
|
128
68
|
};
|
|
129
|
-
/**
|
|
130
|
-
* FileMapView 配置,透传给 agentic-ui-filemap 代码块渲染器。
|
|
131
|
-
* 可在 markdownRenderConfig 中统一配置图片 onPreview 和 itemRender。
|
|
132
|
-
*/
|
|
133
69
|
fileMapConfig?: FileMapConfig;
|
|
134
|
-
/**
|
|
135
|
-
* 自定义元素渲染函数(markdown 渲染模式)
|
|
136
|
-
* 与 Slate 模式的 eleItemRender 对应,允许拦截并替换任意块级/行内元素的渲染结果。
|
|
137
|
-
* @param props - 元素属性(tagName、node、children 等)
|
|
138
|
-
* @param defaultDom - 默认渲染结果
|
|
139
|
-
* @returns 自定义渲染节点,或 undefined 时回退到 defaultDom
|
|
140
|
-
*/
|
|
70
|
+
/** 返回 undefined 回退默认渲染 */
|
|
141
71
|
eleRender?: (props: MarkdownRendererEleProps, defaultDom: React.ReactNode) => React.ReactNode;
|
|
142
72
|
}
|
|
143
73
|
export interface MarkdownRendererRef {
|
|
144
|
-
/** 获取渲染容器的 DOM 元素 */
|
|
145
74
|
nativeElement: HTMLDivElement | null;
|
|
146
|
-
/** 获取当前显示的内容 */
|
|
147
75
|
getDisplayedContent: () => string;
|
|
148
76
|
}
|
|
@@ -16,14 +16,5 @@ export declare enum StreamCacheTokenType {
|
|
|
16
16
|
Table = "table",
|
|
17
17
|
InlineCode = "inline-code"
|
|
18
18
|
}
|
|
19
|
-
/**
|
|
20
|
-
* 流式 Markdown 缓存 hook。
|
|
21
|
-
*
|
|
22
|
-
* 逐字符扫描输入,识别不完整的 Markdown token(link、image、table、emphasis 等),
|
|
23
|
-
* 将已完成的内容输出,不完整的部分暂缓,避免 parser 错误解析。
|
|
24
|
-
*
|
|
25
|
-
* @param input - 完整的 markdown 内容(持续增长)
|
|
26
|
-
* @param enabled - 是否启用流式缓存(非流式直接透传)
|
|
27
|
-
* @returns 安全的可解析 markdown 字符串
|
|
28
|
-
*/
|
|
19
|
+
/** 流式 token 缓存——暂缓不完整的 link/image/table 等,避免 parser 错误解析 */
|
|
29
20
|
export declare const useStreaming: (input: string, enabled: boolean) => string;
|
|
@@ -303,16 +303,7 @@ var isInCodeBlock = function isInCodeBlock(text) {
|
|
|
303
303
|
}
|
|
304
304
|
return inFenced;
|
|
305
305
|
};
|
|
306
|
-
/**
|
|
307
|
-
* 流式 Markdown 缓存 hook。
|
|
308
|
-
*
|
|
309
|
-
* 逐字符扫描输入,识别不完整的 Markdown token(link、image、table、emphasis 等),
|
|
310
|
-
* 将已完成的内容输出,不完整的部分暂缓,避免 parser 错误解析。
|
|
311
|
-
*
|
|
312
|
-
* @param input - 完整的 markdown 内容(持续增长)
|
|
313
|
-
* @param enabled - 是否启用流式缓存(非流式直接透传)
|
|
314
|
-
* @returns 安全的可解析 markdown 字符串
|
|
315
|
-
*/ export var useStreaming = function useStreaming(input, enabled) {
|
|
306
|
+
/** 流式 token 缓存——暂缓不完整的 link/image/table 等,避免 parser 错误解析 */ export var useStreaming = function useStreaming(input, enabled) {
|
|
316
307
|
var _useState = _sliced_to_array(useState(''), 2), output = _useState[0], setOutput = _useState[1];
|
|
317
308
|
var cacheRef = useRef(getInitialCache());
|
|
318
309
|
var processStreaming = useCallback(function(text) {
|
|
@@ -420,11 +411,12 @@ var isInCodeBlock = function isInCodeBlock(text) {
|
|
|
420
411
|
cacheRef.current = getInitialCache();
|
|
421
412
|
return;
|
|
422
413
|
}
|
|
423
|
-
if (enabled) {
|
|
424
|
-
processStreaming(input);
|
|
425
|
-
} else {
|
|
414
|
+
if (!enabled) {
|
|
426
415
|
setOutput(input);
|
|
416
|
+
cacheRef.current = getInitialCache();
|
|
417
|
+
return;
|
|
427
418
|
}
|
|
419
|
+
processStreaming(input);
|
|
428
420
|
}, [
|
|
429
421
|
input,
|
|
430
422
|
enabled,
|
|
@@ -1,40 +1,6 @@
|
|
|
1
1
|
import React from 'react';
|
|
2
2
|
import { MarkdownEditorProps } from '../MarkdownEditor';
|
|
3
|
-
/**
|
|
4
|
-
* MarkdownEditorUpdate 组件 - Markdown 编辑器更新组件
|
|
5
|
-
*
|
|
6
|
-
* 该组件是对 MarkdownEditor 的封装,提供自动更新和格式化功能。
|
|
7
|
-
* 主要用于在思维链中显示和更新 Markdown 内容。
|
|
8
|
-
*
|
|
9
|
-
* @component
|
|
10
|
-
* @description Markdown 编辑器更新组件,提供自动更新和格式化功能
|
|
11
|
-
* @param {MarkdownEditorProps & {isFinished?: boolean}} props - 组件属性
|
|
12
|
-
* @param {boolean} [props.isFinished] - 内容是否已完成
|
|
13
|
-
* @param {string} [props.initValue] - 初始内容
|
|
14
|
-
* @param {boolean} [props.typewriter] - 是否启用打字机效果
|
|
15
|
-
* @param {MarkdownEditorProps} props - 其他 MarkdownEditor 属性
|
|
16
|
-
*
|
|
17
|
-
* @example
|
|
18
|
-
* ```tsx
|
|
19
|
-
* import { MarkdownEditorUpdate } from './MarkdownEditor';
|
|
20
|
-
*
|
|
21
|
-
* <MarkdownEditorUpdate
|
|
22
|
-
* initValue="# Hello World"
|
|
23
|
-
* isFinished={true}
|
|
24
|
-
* typewriter={false}
|
|
25
|
-
* />
|
|
26
|
-
* ```
|
|
27
|
-
*
|
|
28
|
-
* @returns {React.ReactElement} 渲染的 Markdown 编辑器组件
|
|
29
|
-
*
|
|
30
|
-
* @remarks
|
|
31
|
-
* - 自动格式化 Markdown 内容
|
|
32
|
-
* - 支持内容完成状态检测
|
|
33
|
-
* - 提供打字机效果
|
|
34
|
-
* - 只读模式
|
|
35
|
-
* - 自动更新节点列表
|
|
36
|
-
* - 响应式布局
|
|
37
|
-
*/
|
|
3
|
+
/** 思维链中的 MarkdownEditor 封装,自动格式化 + 流式更新 */
|
|
38
4
|
export declare const MarkdownEditorUpdate: (props: MarkdownEditorProps & {
|
|
39
5
|
isFinished?: boolean;
|
|
40
6
|
}) => React.JSX.Element;
|
|
@@ -53,52 +53,13 @@ function _object_spread_props(target, source) {
|
|
|
53
53
|
import React, { useEffect } from "react";
|
|
54
54
|
import { MarkdownEditor, parserMdToSchema } from "../MarkdownEditor";
|
|
55
55
|
import { MarkdownFormatter } from "../Plugins/formatter";
|
|
56
|
-
/**
|
|
57
|
-
|
|
58
|
-
* @param {string} content - 原始内容
|
|
59
|
-
* @returns {string} 转换后的内容
|
|
60
|
-
*/ var toListMarkdown = function toListMarkdown(content) {
|
|
61
|
-
return content;
|
|
62
|
-
};
|
|
63
|
-
/**
|
|
64
|
-
* MarkdownEditorUpdate 组件 - Markdown 编辑器更新组件
|
|
65
|
-
*
|
|
66
|
-
* 该组件是对 MarkdownEditor 的封装,提供自动更新和格式化功能。
|
|
67
|
-
* 主要用于在思维链中显示和更新 Markdown 内容。
|
|
68
|
-
*
|
|
69
|
-
* @component
|
|
70
|
-
* @description Markdown 编辑器更新组件,提供自动更新和格式化功能
|
|
71
|
-
* @param {MarkdownEditorProps & {isFinished?: boolean}} props - 组件属性
|
|
72
|
-
* @param {boolean} [props.isFinished] - 内容是否已完成
|
|
73
|
-
* @param {string} [props.initValue] - 初始内容
|
|
74
|
-
* @param {boolean} [props.typewriter] - 是否启用打字机效果
|
|
75
|
-
* @param {MarkdownEditorProps} props - 其他 MarkdownEditor 属性
|
|
76
|
-
*
|
|
77
|
-
* @example
|
|
78
|
-
* ```tsx
|
|
79
|
-
* import { MarkdownEditorUpdate } from './MarkdownEditor';
|
|
80
|
-
*
|
|
81
|
-
* <MarkdownEditorUpdate
|
|
82
|
-
* initValue="# Hello World"
|
|
83
|
-
* isFinished={true}
|
|
84
|
-
* typewriter={false}
|
|
85
|
-
* />
|
|
86
|
-
* ```
|
|
87
|
-
*
|
|
88
|
-
* @returns {React.ReactElement} 渲染的 Markdown 编辑器组件
|
|
89
|
-
*
|
|
90
|
-
* @remarks
|
|
91
|
-
* - 自动格式化 Markdown 内容
|
|
92
|
-
* - 支持内容完成状态检测
|
|
93
|
-
* - 提供打字机效果
|
|
94
|
-
* - 只读模式
|
|
95
|
-
* - 自动更新节点列表
|
|
96
|
-
* - 响应式布局
|
|
97
|
-
*/ export var MarkdownEditorUpdate = function MarkdownEditorUpdate(props) {
|
|
56
|
+
/** 思维链中的 MarkdownEditor 封装,自动格式化 + 流式更新 */ export var MarkdownEditorUpdate = function MarkdownEditorUpdate(props) {
|
|
57
|
+
var _props_streaming;
|
|
98
58
|
var editorRef = React.useRef();
|
|
99
59
|
useEffect(function() {
|
|
100
60
|
var _editorRef_current_store, _editorRef_current;
|
|
101
|
-
|
|
61
|
+
var formatted = MarkdownFormatter.format(props.initValue || '') || '';
|
|
62
|
+
(_editorRef_current = editorRef.current) === null || _editorRef_current === void 0 ? void 0 : (_editorRef_current_store = _editorRef_current.store) === null || _editorRef_current_store === void 0 ? void 0 : _editorRef_current_store.updateNodeList(parserMdToSchema(formatted.trim(), props.plugins).schema);
|
|
102
63
|
}, [
|
|
103
64
|
props.initValue
|
|
104
65
|
]);
|
|
@@ -126,7 +87,7 @@ import { MarkdownFormatter } from "../Plugins/formatter";
|
|
|
126
87
|
showLineNumbers: false
|
|
127
88
|
}
|
|
128
89
|
}, props), {
|
|
129
|
-
|
|
90
|
+
streaming: ((_props_streaming = props.streaming) !== null && _props_streaming !== void 0 ? _props_streaming : props.typewriter) && !props.isFinished,
|
|
130
91
|
initValue: ""
|
|
131
92
|
}));
|
|
132
93
|
};
|
|
@@ -12,6 +12,9 @@ export interface RealtimeFollowData {
|
|
|
12
12
|
title?: string;
|
|
13
13
|
subTitle?: string;
|
|
14
14
|
icon?: React.ComponentType;
|
|
15
|
+
/** 流式输出模式,同时传入时优先于 typewriter */
|
|
16
|
+
streaming?: boolean;
|
|
17
|
+
/** @deprecated 请使用 streaming */
|
|
15
18
|
typewriter?: boolean;
|
|
16
19
|
rightContent?: React.ReactNode;
|
|
17
20
|
loadingRender?: React.ReactNode | (() => React.ReactNode);
|
|
@@ -268,7 +268,7 @@ var Overlay = function Overlay(param) {
|
|
|
268
268
|
* ```
|
|
269
269
|
*/ export var RealtimeFollow = function RealtimeFollow(param) {
|
|
270
270
|
var data = param.data, _param_htmlViewMode = param.htmlViewMode, htmlViewMode = _param_htmlViewMode === void 0 ? 'preview' : _param_htmlViewMode, prefixCls = param.prefixCls, hashId = param.hashId;
|
|
271
|
-
var
|
|
271
|
+
var _ref, _data_streaming, _data_content;
|
|
272
272
|
var _data_markdownEditorProps;
|
|
273
273
|
var getPrefixCls = useContext(ConfigProvider.ConfigContext).getPrefixCls;
|
|
274
274
|
var finalPrefixCls = prefixCls || getPrefixCls('workspace-realtime');
|
|
@@ -282,13 +282,14 @@ var Overlay = function Overlay(param) {
|
|
|
282
282
|
]
|
|
283
283
|
}), autoScrollRef = _useAutoScroll.containerRef, scrollToBottom = _useAutoScroll.scrollToBottom;
|
|
284
284
|
useEffect(function() {
|
|
285
|
+
var _data_streaming;
|
|
285
286
|
var _mdInstance_current;
|
|
286
287
|
if (isTestEnv || !((_mdInstance_current = mdInstance.current) === null || _mdInstance_current === void 0 ? void 0 : _mdInstance_current.store)) return;
|
|
287
288
|
if (!shouldUpdateEditor(data.type, htmlViewMode)) return;
|
|
288
289
|
var content = getContentForEditor(data.type, data.content);
|
|
289
290
|
var schema = parserMdToSchema(content, mdInstance.current.store.plugins).schema;
|
|
290
291
|
mdInstance.current.store.updateNodeList(schema);
|
|
291
|
-
if (data.typewriter && !isTestEnv) {
|
|
292
|
+
if (((_data_streaming = data.streaming) !== null && _data_streaming !== void 0 ? _data_streaming : data.typewriter) && !isTestEnv) {
|
|
292
293
|
setTimeout(function() {
|
|
293
294
|
return scrollToBottom();
|
|
294
295
|
}, SCROLL_DELAY);
|
|
@@ -298,6 +299,7 @@ var Overlay = function Overlay(param) {
|
|
|
298
299
|
data.type,
|
|
299
300
|
htmlViewMode,
|
|
300
301
|
isTestEnv,
|
|
302
|
+
data.streaming,
|
|
301
303
|
data.typewriter,
|
|
302
304
|
scrollToBottom
|
|
303
305
|
]);
|
|
@@ -338,7 +340,7 @@ var Overlay = function Overlay(param) {
|
|
|
338
340
|
}
|
|
339
341
|
var defaultProps = getEditorConfig(data.type);
|
|
340
342
|
var mergedProps = _object_spread_props(_object_spread({}, defaultProps, data.markdownEditorProps), {
|
|
341
|
-
|
|
343
|
+
streaming: isTestEnv ? false : (_ref = (_data_streaming = data.streaming) !== null && _data_streaming !== void 0 ? _data_streaming : data.typewriter) !== null && _ref !== void 0 ? _ref : defaultProps.typewriter,
|
|
342
344
|
style: _object_spread({
|
|
343
345
|
maxHeight: 'auto'
|
|
344
346
|
}, defaultProps.style, (_data_markdownEditorProps = data.markdownEditorProps) === null || _data_markdownEditorProps === void 0 ? void 0 : _data_markdownEditorProps.style)
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@ant-design/agentic-ui",
|
|
3
|
-
"version": "2.30.
|
|
3
|
+
"version": "2.30.24",
|
|
4
4
|
"description": "面向智能体的 UI 组件库,提供多步推理可视化、工具调用展示、任务执行协同等 Agentic UI 能力",
|
|
5
5
|
"repository": "git@github.com:ant-design/agentic-ui.git",
|
|
6
6
|
"license": "MIT",
|
|
@@ -23,8 +23,8 @@
|
|
|
23
23
|
"lint": "pnpm run lint:es && pnpm run lint:css",
|
|
24
24
|
"lint:css": "stylelint \"{src,test}/**/*.{css,less}\"",
|
|
25
25
|
"lint:es": "eslint \"{src,test}/**/*.{js,jsx,ts,tsx}\"",
|
|
26
|
+
"playwright:install": "playwright install --with-deps chromium",
|
|
26
27
|
"prepare": "husky install && dumi setup",
|
|
27
|
-
"prepublishOnly": "npm run build && npm run test",
|
|
28
28
|
"prettier": "prettier --write \"{src,docs,test}/**/*.{js,jsx,ts,tsx,css,less,json,md}\"",
|
|
29
29
|
"preview": "pnpm dumi preview",
|
|
30
30
|
"report:demo": "node scripts/generateDemoReport.js",
|